溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中無法遠程連接數據庫問題的解決方法

發布時間:2020-08-26 00:11:00 來源:腳本之家 閱讀:552 作者:如是說 欄目:服務器

起因

今天在ubuntu16.04環境下通過mysql workbench訪問遠程數據庫時,發現無法連接問題,解決思路及方法記錄如下,不足之處,請多指教。

問題

通過workbench輸入密碼訪問時報這個錯:

Your connection attempt failed for user 'root' from your host to server at 118.89.153.162:3306: Access denied for user 'root'@'118.89.153.162' (using password: YES)

思路

  • 網絡問題,更換網絡之后重啟workbench和MySQL服務進行連接,依舊是這個錯。
  • 密碼錯誤,通過ssh遠程登錄服務器查看遠程mysql的password,發現所填密碼正確。
  • 遠程mysql沒有訪問權限,一般有兩種方法:改表法和授權法   : 

 授權法:

第一步:嘗試打開/etc/mysql/my.cnf配置文件,若文件不存在或者內容為空,則打開下面的文件路徑:

sudo vim /etc/mysql/my.cnf 
//或:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

第二步:在文件中查找下面一行,如果該行前沒有加#,可在該行前添加#進行注釋,保存退出。

bind-address = 127.0.0.1 

改表法:

mysql>use mysql;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //賦予任何主機訪問以及修改所有數據的權限
//例如,你想root用戶使用root從任何主機連接到mysql服務器的話。
//GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
//如果你想允許用戶root從ip為192.168.1.124的主機連接到mysql服務器,并使用123456作為密碼
//GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.124'IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>flush privileges //權限刷新,使修改立即生效
sudo /etc/init.d/mysql restart //或: service mysql restart 重啟mysql服務

兩種方法我嘗試了一下,錯誤類型變成了:

Can't connect to MySQL server on ...

看到這個錯誤我想到了遠程服務器防火墻的原因,于是我有了下面的思路:

4. 遠程ubuntu服務器的防火墻原因導致無法本地訪問遠程的3306端口

sudo ufw disable //關閉防火墻,該命令需在root權限下執行,慎用

再次通過workbench連接遠程mysql,連接成功。

原因

我的本地無法連接遠程是因為遠程ubuntu服務器防火墻默認禁止外部訪問3306端口。

做法

sudo ufw enable //開啟防火墻
sudo ufw allow 3306 //允許外部訪問3306端口

總結

1. 一般的無法連接遠程mysql問題是由上面四個愿意導致的,這里不做贅述。

2. 在遇到一個問題時首先要做的不是立刻找做法解決這個問題,而應該是思考為什么會出現這個問題,產生這個問題的原因,做到對癥下藥。

3. 自己還有很多不足,戒驕戒躁才能進步。

附贈

Ubuntu常用ufw防火墻命令

//安裝方法
sudo apt-get install ufw
 
//啟用
sudo ufw enable
sudo ufw default deny //開啟了防火墻并隨系統啟動同時關閉所有外部對本機的訪問,本機訪問外部正常。

//關閉
sudo ufw disable

//查看防火墻狀態
sudo ufw status

//開啟/禁用相應端口或服務舉例
sudo ufw allow 3306 //允許外部訪問3306端口
sudo ufw delete allow 3306 禁止外部訪問3306端口
 sudo ufw allow from 118.89.153.162 //允許此IP訪問所有的本機端口
sudo ufw deny smtp //禁止外部訪問smtp服務
sudo ufw delete allow smtp //刪除上面建立的某條規則
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22 //要拒絕所有的TCP流量從10.0.0.0/8 到192.168.0.1地址的22端口

//推薦使用
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny

參考文章:https://www.jb51.net/article/138876.htm

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女