1. 程式人生 > >關於mysql遠端連線

關於mysql遠端連線

windows環境下簡單,這裡講linux環境下的

首先,linux系統有一道防火牆

我用的是ubutun16.04LTS

要用ufw工具(命令)開啟3306埠(ufw allow )

(如果安裝的時候改變了埠那就開啟那個埠,雖好不要所有埠都開啟,linux不像windows,因為自由度更高,所以安全相對更低)

這就過了第一道牆

然後是mysql內部

(其實個人覺得資料庫的對外訪問許可權沒有必要開啟,因為資料庫裡 大多是很重要的東西,開放埠等於給豺狼留了門,不開放埠,然後通過伺服器中轉,最後內部訪問就行)

內部預設情況是所有賬戶的訪問許可權都是localhost(可以通過指令“select user,host from mysql.user;”來檢視使用者列表)

這個時候要利用update指令更改:update mysql.user set host ="%" where user ="root";

(此處%的意思是萬用字元,就是所有主機只要有賬號密碼都可以訪問)

改了之後理論上就可以連線了

但是實際操作上(遠端聯結器用的SQLyog)SQLyog會報錯(具體錯誤程式碼不記得了/捂臉)

需要進行以下操作:

alter user 'root'@'%' identified by 'password' password expire never;#修改加密規則(說實話沒看懂這一句/捂臉,但確實有效,我還是要去補下sql的基礎)

alter user 'root'@'%' identified with mysql_native_password by 'password';#更新一下使用者的密碼

flush privileges;#重新整理許可權

重置密碼:alter user 'root'@'%' identified by '#你要重置的新密碼#'

 

這樣就可以連線成功了

(有些內容是從其它部落格學習過來的,侵刪)