热门发布的更新:对热门帖子表示道歉;由于歇斯底里的原因,旧的问题仍然存在,但事情已发生变化。现在这更像是一个Delphi问题,而不是MySql问题。
我发现从命令行我可以使用
访问远程MySql数据库mysql.exe -h 192.168.89.128 -u my_user -p
所以看起来我已经正确设置了远程服务器。
然而,当我从Delphi尝试
时 AdoConnection.LoginPrompt:=False;//dont ask for the login parameters
AdoConnection.ConnectionString :=
Format(MYSQL_CONNECT_STRING,[ConfigurationForm.GetServerIpAddress() + ':3306',
DataBase,
ConfigurationForm.GetUserName(),
ConfigurationForm.GetPassword()]);
AdoConnection.Connected := True; //open the connection
,它提供了一个
的ConnectionStringDriver={MySQL ODBC 5.1 Driver};
Server=192.168.89.128:3306;
Database=mysql;User=my_user;
Password=my_password;Option=3;
我得到了一个例外
"Unknown MySql server host '192.168.89.128:3306' (11004)"
我能有halpz吗?
更新&回答:以防万一有人谷歌&发现了这个。
问题在于我的连接字符串。
当我应该单独指定它们时,我将端口附加到主机Server=192.168.89.128:3306;
,即Server=192.168.89.128;Port=3306;
,以便我的完整连接字符串
Driver={MySQL ODBC 5.1 Driver};
Server=192.168.89.128;
Port=3306;
Database=mysql;
User=eLogger;
Password=bct_eLogger;
Option=3;
向那些咆哮错误的树试图帮助我的人道歉。我希望这反过来会帮助一些可怜的德尔福编码器。另请参阅http://delphi.about.com/od/mysql/qt/mysqladoconn.htm
答案 0 :(得分:3)
也许您的问题是您在server
属性中包含端口,尝试重写没有3306
端口的连接字符串,因为这是mysql的默认端口或包含port
中的端口{1}}属性。
类似的东西
Driver={MySQL ODBC 5.1 Driver};Server=192.168.89.128;Database=mysql;User=my_user; Password=my_user;Option=3;
Driver={MySQL ODBC 5.1 Driver};Server=192.168.89.128;Port=3306;Database=mysql;User=my_user; Password=my_user;Option=3;
答案 1 :(得分:1)
检查端口是否打开
执行以下命令并查找“:3306”侦听器(您未提及UDP / TCP)。这将确认端口上正在运行某些东西。
netstat -a -n
这里有关于检查端口的完整答案 https://serverfault.com/questions/26564/how-to-check-if-a-port-is-blocked-on-windows