远程 MySql 可以使用 Navicat 进行连接,但不能从其他主机进行连接



你好,我有一个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’);

相关内容

  • 没有找到相关文章

最新更新