1. 程式人生 > >站長篇----遠端連線資料庫失敗的解決方法

站長篇----遠端連線資料庫失敗的解決方法

前言


遠端連線資料出錯,報:

  • host “XXXXXXXXXXXX” is not allowed to connect to this MySql server
  • unable to authentic
  • SSH tunnel: Invalid username or password

    這三個錯誤一個來自常規連線(general),兩個來自ssh連線。

ssh連接出現的錯誤,我試著修改過ubuntu的iptables,把3306資料庫埠開放出來。但是沒有用。

轉而跳過ssh連線,並沒有嘗試公鑰私鑰的方法。花了點時間解決常規連線的bug。

出錯環境


我是連遠端資料庫,本非本地。本地的話,也不會有這麼多問題。因為資料庫中預設有localhost這個使用者。但是遠端,就需要把需要接入資料庫的電腦IP放在資料庫的使用者表中。

遠端資料庫:mysql 5.x
遠端系統:Ubuntu 14.04

本地系統:mac os x/window
本地資料庫管理工具:navicat/sqlYog

遠端和本地在同一子網下,相互能夠ping通。

解決辦法


先把自己的本機IP加入到遠端資料庫的USER表中.
在遠端主機上,開啟mysql的客戶端。執行的命令可以先參考下方截圖:
谷震平的blog

先:
select host,user from user;

結果便是該資料中的user資訊了,可以看到我的本地IP(是類似於192.168.1.x的)還不知道里面。

如果你想myuser使用mypassword從任何主機連線到mysql伺服器的話。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY
 'mypassword' WITH GRANT OPTION; 

FLUSH   PRIVILEGES;

例如,如果你想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器,並使用mypassword作為密碼

GRANT ALL PRIVILEGES
ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

一定不要忘記輸入flush privileges;

新增完後,即可遠端連線成功。

參考blog:http://www.cnblogs.com/iscodercn/p/5488633.html [ 這篇blog還不錯,在ubuntu 16.04上安裝mysql及新增許可權]