站長篇----遠端連線資料庫失敗的解決方法
前言
遠端連線資料出錯,報:
- 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的客戶端。執行的命令可以先參考下方截圖:
先:
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及新增許可權]