簡體   English   中英

遠程MySql可以使用Navicat進行連接,但不能從其他主機進行連接

[英]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
  • 然后重啟mysql

另一個猜測:嘗試指定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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM