远程MySql可以使用Navicat但不能从另一台主机连接

时间:2017-07-12 01:49:30

标签: mysql remote-connection

您好我有一个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")

2 个答案:

答案 0 :(得分:0)

你是什么意思&#34;其他主持&#34;?我猜它不是localhost。 也许你已经使用&#34;而不是ssh&#34;使用Navicat时的连接,这就是为什么它没有被拒绝。

111错误反映&#34;连接被拒绝&#34;,这意味着您的mysqld只侦听localhost。 解决方案:您需要在my.cnf文件的mysqld部分编辑(或评论)bind-address值(选中“how to locate my.cnf”?)

  • 将此行bind-address = 127.0.0.1评论为#bind-address = 127.0.0.1
  • 然后重启mysql

答案 1 :(得分:0)

另一个猜测: 尝试指定db_name,port,socket:

  • 确保使用正确的端口: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’);