0

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

2 回答 2

0

另一种猜测:尝试指定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’);

于 2017-07-14T07:05:12.960 回答
0

“其他托管”是什么意思?我猜它不是本地主机。也许你在使用 Navicat 时使用了“over ssh”连接,所以它没有被拒绝。

111错误反映“连接被拒绝”,这意味着你的mysqld只监听本地主机。解决方案:您需要bind-address在 my.cnf 文件的 mysqld 部分编辑(或注释)值(检查“<a href="https://stackoverflow.com/questions/2482234/how-to-know-mysql-my -cnf-location">如何定位my.cnf"?)

  • 将此行评论bind-address = 127.0.0.1#bind-address = 127.0.0.1
  • 然后重启mysql
于 2017-07-13T08:13:45.340 回答