如何在Windows Server上允许外部远程访问MySQL


How to allow MySQL on Windows Server for external remote access?

我已经在windows server 2008 R2上安装了xampp。我在那里运行一个脚本,为我存储一天的数据。现在我想通过mysql_connect("主机名","用户名","pw")连接数据库,从我自己的计算机或外部检索数据。经过一番调查,我被告知我必须推荐

> [...]
> #bind-address = 127.0.0.1
> #skip-networking 
  [...]
在/etc/mysql/my.cnf

没有找到我的。Cf文件在mysql,但发现一个在xampp/mysql/bin/my.ini。但是当我打开文件时,我发现这些行甚至被注释了,所以没有改变任何东西.....奇怪。

然后我被告知创建一个主机设置为%的新用户。于是我照做了。现在我试图访问我的PC (xampp)上的数据库,但是当我想连接数据库时,我只是得到错误消息,即连接失败。错在哪里?

感谢编辑:

就是这样连接的

$connection=mysql_connect("hostname","usrname","password")or die(mysql_error());
mysql_select_db("dbname")or die(mysql_error());

,我得到的错误信息是德语,你可以翻译。

警告:mysql_connect(): Ein verindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht ht reagiert, der die hergestellte verindung war fehlerhaft, da der verbundene Host nicht reagiert。C:'xampp'htdocs'tickerdata'get.php on line 4

仅仅意味着连接失败,因为远程在一段时间内没有反应,或者连接失败,因为主机没有反应。

如果您不能远程连接到服务器,但可以本地连接,则需要在防火墙中打开端口3306,或者从远程IP授予用户权限。

该端口应在windows防火墙中打开,在路由器防火墙中也应打开。您的路由器需要将端口转发到2008R2服务器。

打开2008R2防火墙的端口:

http://www.2x.com/blog/2010/04/tech/configuring - - windows server 2008 r2 - - -防火墙- - - -开放港口——- 2 x - solutions/

在IP上授予用户权限:

GRANT ALL ON foo.* TO bar@'255.255.255.255' IDENTIFIED BY 'PASSWORD';

请记住,在MySQL中可能有重复的用户名,如果你没有用唯一的用户名创建新用户,那么你可能会获得被监禁到localhost的用户的特权