PHP中mysql如何远程连接数据库

$openconn = mysql_connect(主机名,数据库名,用户名,密码)
主机名写localhost可以运行,但改写成本地ip就连接错误
我想实现主机名填写IP,这样就可以远程连接其他的服务器的数据库了

$conn=mysql_connect('主机','数据库名','密码'); 将’主机‘改为IP号,是可以远程访问数据库的。

前提是需要:

           1、关闭所访问的主机的 防火墙。(不然其他用户无法访问主机)

           2、设置主机上的 数据库的 访问权限,即 允许 其他用户访问 数据库。

                MySql数据库的访问权限设置:在mysql命令行中输入命令  grant all on *.* to root@'%' identified by password;     其中password是数据库的密码。

            3、该步骤最关键,得保证与主机之间的线路是通的(否则永远也连不上)。


看了,LZ提出的问题后,亲自编程序试了下,程序如下:



上述程序即可,用于测试。


如有问题,请再留言。

追问

按照这个方法试了,防火墙关闭,代码页改了,确实成功了。
但是我将防火墙打开之后,就不能连接了!
服务器上关闭防火墙貌似不安全。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
你好,如果你用localhost和127.0.0.1可以连接,用本地IP不能连接,可能是你Mysql的配置文件设置了不允许远程连接
你可以百度搜索下 MYSQL 开启远程连接
第一个搜索结果可以解决你的问题追问

我按照要求改了。。。数据库中mysql的user表中host也改变成了我的ip名,但是连接还是报错,
Warning: mysql_connect() [function.mysql-connect]: Host 'W15-RD-207' is not allowed to connect to this MySQL server in D:\wamp\www\PCPS\test.php on line 11

提示的是主机名不允许~~~~(>_<)~~~~

追答

怎么会提示Host 'W15-RD-207' is not allowed

你把那段代码贴出来看看

追问

我研究出来了,执行命令grant all privileges on *.* to 'root'@'%' identified by 'mypassword' with grant option;
之后,重启mysql就好了。。。

但是貌似还必须将防火墙关闭啊,这样会不会不安全,因为我需要连接的是服务器的数据库

追答

不要设置防火墙,把这个服务列为可访问网络就可以

追问

怎样把这个服务列为可访问网络啊?不会。。。。

追答

好像是win7才要专门去设置的 你的是win7吗

追问

是的,怎么设置啊?

本回答被提问者和网友采纳
相似回答