MySql远程访问问题

时间:2011-05-14 01:11:28

标签: mysql delphi xampp mysql-management

热门发布的更新:对热门帖子表示道歉;由于歇斯底里的原因,旧的问题仍然存在,但事情已发生变化。现在这更像是一个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

,它提供了一个

的ConnectionString
Driver={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

2 个答案:

答案 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;

指定TCP / IP端口

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