你好,我有一个centos服务器,我已经成功地设置了从Windows上的Navicat,Android上的remoDB等软件的远程连接。但问题是,我无法从其他主机连接到服务器。
这是我的代码示例
<?php
$servername = "******";
$username = "***";
$password = '*****';
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
我得到的错误是这个
Connection failed: Can't connect to MySQL server on '*****' (111 "Connection refused")
"其他托管"是什么意思?我想这不是本地主机。 也许您在使用 Navicat 时使用了"over ssh"连接,因此没有被拒绝。
111错误反映"连接被拒绝",这意味着您的mysqld只监听本地主机。 解决方案:您需要在my.cnf文件的mysqld部分中编辑(或注释(bind-address
值(选中"如何找到my.cnf"?
- 评论此行
bind-address = 127.0.0.1
#bind-address = 127.0.0.1
- 然后重新启动 MySQL
另一个猜测: 尝试指定db_name、端口、套接字:
- 确保使用正确的端口:
mysqladmin -u {user} -p{pwd} variables | grep port
-
确保使用正确的套接字:
mysqladmin -u {user} -p{pwd} variables | grep sock
-
然后像这样继续:
$conn = new mysqli('localhost', 'my_user', 'my_password', 'my_db’, ‘xxxx’, ‘{path to my socket}/mysql.sock’);