PHP MySql未知服务器主机

PHP MySql未知服务器主机,php,mysql,ubuntu-12.04,webmin,dyndns,Php,Mysql,Ubuntu 12.04,Webmin,Dyndns,我正在运行Ubuntu12.04.4LTS,使用MySQL 5.5.38和PHP5.3.10,使用Webmin 1.680(尽管我也使用终端进行管理)。我在一个动态的IP上,所以我一直在使用dyndns来主持一个网站,它一直在完美地工作。我想扩展我的网站以访问mysql数据库。我正在尝试使用PHP连接mysql,特别是我使用Webmin设置的特定数据库。然而,我不断得到错误: “未知MySQL服务器主机'127.0.0.1:3306'” 我已经检查了mysql配置,并将其设置为该IP和端口。我还

我正在运行Ubuntu12.04.4LTS,使用MySQL 5.5.38和PHP5.3.10,使用Webmin 1.680(尽管我也使用终端进行管理)。我在一个动态的IP上,所以我一直在使用dyndns来主持一个网站,它一直在完美地工作。我想扩展我的网站以访问mysql数据库。我正在尝试使用PHP连接mysql,特别是我使用Webmin设置的特定数据库。然而,我不断得到错误:

“未知MySQL服务器主机'127.0.0.1:3306'”

我已经检查了mysql配置,并将其设置为该IP和端口。我还检查了我的服务器主机,并且IP是本地主机。我的路由器设置为将端口3306转发到我的服务器。无论是本地连接还是远程连接,都会发生这种情况。我正在使用以下PHP字符串进行连接:

$link = mysqli_connect("127.0.0.1:3306", "username", "password", "dbname");

我在我的探索中找到的解决方案不起作用。。。将连接字符串中的主机更改为“localhost:3306”或更改为我的dyndns主机名“XYZ.dyndns.org:3306”,或更改为我服务器的本地IP,并更改mysql绑定地址以匹配。我已经尝试在配置文件中注释出绑定地址。我在这个论坛和其他论坛上发现了类似的问题,但没有一个解决方案适合我。我是数据库新手,但已经做了很多关于使用PHP操作数据库的研究,我就是无法克服这个连接错误。我一直在自学如何运行服务器,并且能够自己解决所有问题,直到这次。我可以从服务器上的终端登录mysql,但执行“show databases”命令时,它不会列出我通过webmin创建的数据库,即使我要求用户完全访问/控制该数据库。

当我开始使用mysql时,我也遇到了类似的问题。如果需要包括端口,它在
mysqli\u connect
中有自己的位置

$link = mysqli_connect("127.0.0.1", "username", "password", "dbname", 3306);

应该对你更有用。但是我相信3306是默认端口,所以您可以不使用它。

我必须赞扬您的帖子,因为您对自己的解释非常好。虽然我并不完全熟悉Ubuntu服务器,但我过去在Windows电脑上使用过XAMPP。我总是忘了港口。如果您在本地运行服务器,则不需要端口转发。您也可以尝试使用
localhost
代替
127.0.0.1
。如果您收到任何错误消息,请扫描您登录MySQL并提供
SHOW GRANTS\G
的输出(您应该删除密码哈希)?如下面的回答所示,我将端口从主机移到了终端,并且我的主机的访问被拒绝username@localhost. 应该注意,我对我的服务器使用的是基本身份验证,它似乎使用了我的用户名,而不是我在连接字符串中输入的mysql。我在mysql中创建了一个与我的登录名和密码相同的用户,但仍然被拒绝。对不起。。“SHOW GRANTS\G”的输出是上的授权使用。致“@”localhost“感谢您的回复!这似乎让我更接近了,我不再得到主机错误,而是被主机拒绝访问user@localhost(使用密码是)谢谢大家!我能够为我的用户授予权限,现在一切正常!我感谢所有的帮助!