使用騰訊雲或者阿里雲的伺服器配置MariaDB資料庫環境的時候,用Navicat遠端連線在Centos7的Linux上配置MariaDB資料庫環境的時候一直出錯誤程式碼 "2002 - Can't connect to server on '' (10060)"
可能原因如下
1.是否有許可權訪問MariaDB資料庫
2.MariaDB的服務為開啟或已關閉
3.MariaDB正在不同的埠上執行,連線埠錯誤
4.Linux防火牆阻止了與MariaDB的連線
5.是否被雲伺服器防火牆攔截
1.檢視是否給root賦予了遠端訪問的許可權,如果沒有需要先給root訪問許可權
安裝好MariaDB後設定訪問許可權,命令是:grant all privileges on *.* to 'root' @'%' identified by '123';
然後重新整理許可權,命令是:flush privileges;
然後進入MariaDB查詢一下是否給root賦予了遠端訪問的許可權,sql語句:select User,host from mysql.user
host的值有%代表root有了遠端訪問的許可權,許可權沒有問題
2.檢視MariaDB是否開啟服務,在windos系統中MySQL沒有開啟服務也會報2002的錯,Linux中的MariaDB類似.
檢視命令:systemctl status mariadb
running說明服務已開啟,沒有問題.
3.然後排查MariaDB開啟的埠是否是3306
檢視命令:netstat -apn
埠號也沒有問題
4.檢視是否被防火牆攔截(防火牆預設是關閉的)
檢視命令:sudo systemctl status firewall
檢視結果防火牆也是關閉的,沒有問題
5.檢視是否被雲伺服器攔截
罪魁禍首終於找到了!就是這個雲伺服器攔截了3306的資料庫埠連線,以騰訊云為例,在攔截規則裡配置好之後就可以遠端訪問資料庫了.