mysql如何允許遠端訪問

宵雲科技發表於2019-12-13

預設情況下,mysql帳號不允許從遠端登陸,只能在localhost登入。本文提供了二種方法設定mysql可以透過遠端主機進行連線。

修改使用者表的資料

登入mysql後,更改 mysql 資料庫裡的 user 表裡的 host 項,將localhost改稱%

mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;

修改授權

例如: 你想myuser使用mypassword(密碼)從任何主機連線到mysql伺服器的話。

mysql>GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION; mysql>FLUSH PRIVILEGES

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

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

檢查防火牆

如果還不能連線,就可能是防火牆的鍋了。

#透過systemctl status firewalld檢視firewalld狀態#FirewallD is not runningsystemctl unmask firewalld             systemctl start firewalld#再次透過systemctl status firewalld檢視firewalld狀態,顯示running即已開啟了。#再次執行執行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示設定成功,這樣就可以繼續後面的設定了。firewall-cmd --reloadsystemctl stop firewalld.service   #關閉防火牆

修改mysql配置檔案

如果檢查了防火牆還是不行,那就用最後一招,修改配置檔案(博主用了最後一招才解決遠端訪問的問題)

my.cnf配置檔案的位置,一般在/etc/my.cnf,有些版本在/etc/mysql/my.cnf

在配置檔案中,增加2行程式碼

[mysqld]bind-address = 0.0.0.0

重啟服務,遠端訪問,發現可以正常訪問了

p.s.

mysql8.0版本配置方法不同,按照上述方法配置之後,Navicat可以正常連線,但是nodejs程式碼連線報錯

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

解決辦法(修改加密規則為普通模式,預設是嚴格加密模式):

依次輸入以下語句

mysql>ALTER USER 'root'@'%' IDENTIFIED BY 'xxxxxxxx' PASSWORD EXPIRE NEVERmysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxx';mysql>FLUSH PRIVILEGES;

用nodejs測試資料庫連線,應該就可以使用了

mysql5.5 允許遠端訪問

1.啟動mysql 的cmd命令

1.png

2.使用“use mysql”命令,選擇要使用的資料庫,修改遠端連線的基本資訊,儲存在mysql資料庫中,因此使用mysql資料庫。

2.png

3.使用“GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;”命令可以更改遠端連線的設定。

3.png

4.使用“flush privileges;”命令重新整理剛才修改的許可權,使其生效。

4.png

5.使用“select host,user from user;”檢視修改是否成功。

5.png


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69948194/viewspace-2668406/,如需轉載,請註明出處,否則將追究法律責任。

相關文章