无法在IPAddress上连接到MySQL服务器(10061)

时间:2010-08-19 05:00:49

标签: php mysqli

我需要连接到远程MySQL数据库并创建了以下连接代码:

<?php
/* Set Variables */
$host="myipaddress";
$db="mydbname"; 
$username="dbuser";
$pass="mypass";

/* Attempt to connect */
$mysqli=new mysqli($host,$username,$pass,$db);
if (mysqli_connect_error()){
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
echo 'Success... ' . $mysqli->host_info . "\n";

$mysqli->close();

}
?>

出于安全考虑,我没有提供实际的变量值。当我在我的开发系统上运行时,我会收到

Connect Error (2003) Can't connect to MySQL server on 'myipaddress' (10061)

我的PHP有点生疏,有人可以识别我的代码有错吗?请注意,dbuser对设置为变量的数据库名称具有选择,插入和更新权限。

谢谢, SID

修改 我对my.cnf进行了更改并重新启动了mysql。我现在收到用户'dbuser'@'mycurrenthostname'的拒绝访问权限(使用密码YES)。当我从命令行使用mysql -u dbuser -p时,我可以登录。我授予了插入,更新和选择与主机'%'的dbuser,以便dbuser可以从任何地方连接。

我已阅读有关此错误的MySQL参考指南,但仍然卡住了。我的代码是否有问题,现在我的my.cnf已经修复了?

3 个答案:

答案 0 :(得分:14)

检查您的防火墙是否允许通过端口3306进行连接。

检查bind-address中的MySQL配置参数my.cnf,确保它允许远程连接。

此处提供了相关信息和问题排查提示:

http://dev.mysql.com/doc/refman/5.1/en/can-not-connect-to-server.html

答案 1 :(得分:3)

根据MySql文档,错误(2003)无法连接到'服务器'(10061)上的MySQL服务器表示网络连接已被拒绝。您应检查是否有MySQL服务器正在运行,是否已启用网络连接,以及您指定的网络端口是服务器上配置的网络端口。

我不熟悉php,但问题可能不在您的代码中。

答案 2 :(得分:2)

如果即使在打开Mysql端口3306开放访问权限后仍然遇到上述错误,

只需更改位于/etc/mysql/my.cnf的mysql文件my.cnf的绑定地址 更新绑定地址,如下所示 bind-address = 0.0.0.0

这将允许远程访问所有IP 在AWS ec2上,它可以正常工作。