我正在使用PHP和MySQL建立数据库连接,唯一的变化是我尝试使用我的服务器IP地址从本地计算机访问我的远程服务器。
mysql_connect("x.xx.xx.x","username","password") or die(mysql_error());
我得到的错误是Unable to connect to the given host
。用户拥有所有权限。
答案 0 :(得分:19)
MySQL的大多数默认安装只能侦听本地计算机。
在服务器上查找bind-address
中的my.cnf
设置,并确保它正在侦听您要定位的IP地址。您可能还需要确保<{1}} 未启用!
或者(并且不太安全!)以下内容将其设置为侦听所有地址 - 本地和远程:
skip-networking
答案 1 :(得分:3)
尝试添加允许从IP连接的用户(USER-NAME):
mysql> GRANT ALL PRIVILEGES ON *.* TO USER-NAME@IP IDENTIFIED BY "PASSWORD";
USER-NAME是您要创建的用户名(例如'widor') IP是远程连接的公共IP地址(如'195.x.y.z')
当然,限制您要授予的权限(可能不是您选择的所有权限)
答案 2 :(得分:2)
1)检查MySQL侦听连接的接口,本地(localhost,127.0.0.1)或远程(0.0.0.0或IP地址)。它在my.cnf中。 http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
2)检查您的用户是否具有相应的权限。从localhost登录的用户可以拥有与远程用户不同的权限。例如'user'@'localhost'和'user'@'%'
答案 3 :(得分:2)
在尝试使用PHP todo之前。打开终端或控制台,然后键入以下内容:
$ mysql -u username -h x.xx.xx.x -p
然后输入您的密码
或者在Windows上输入:
\ path \ to \ mysql.exe -u username -h x.xx.xx.x -p
然后输入您的密码
这将为您提供有关即将发生的身份验证问题的更详细回复。并且您可以100%确定您的IP地址远程登录是否有效。如果它工作正常,那么你的PHP代码就会丢失它。