[英]Remote MySql Can Connect using Navicat but Not From Another Host
您好,我有一個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
另一個猜測:嘗試指定db_name,端口,套接字:
mysqladmin -u {user} -p{pwd} variables | grep port
mysqladmin -u {user} -p{pwd} variables | grep port
確保使用正確的套接字: mysqladmin -u {user} -p{pwd} variables | grep sock
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');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.