預設情況下,mysql隻允許本地登入,即隻能在安裝MySQL環境所在的主機下通路。
但是在日常開發和使用中,我們經常需要通路遠端伺服器的資料庫,此時就需要開啟伺服器端MySQL的遠端連接配接權限。
1.連接配接MySQL環境
通過mysql指令連接配接MySQL
2.檢視MySQL目前遠端通路權限配置
use mysql
select User,authentication_string,Host from user;
通過指令可以看到目前隻有一個使用者root,并且Host為localhost,即隻能本地通路權限
3.開啟遠端通路權限
開啟遠端通路權限的方式,主要包括兩種:改表法和授權法
方式一:改表法
顧名思義,該方法就是直接修改更改"mysql"資料庫裡的"user"表裡的"host"項,從"localhost"改為"%"
update user set host='%' where user='root';
方式二:授權法
通過GRANT指令可以授予主機遠端通路權限
--賦予任何主機通路權限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
--允許指定主機(IP位址)通路權限:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;
通過GRANT指令賦權後,需要通過
FLUSH PRIVILEGES
重新整理權限表使修改生效:
FLUSH PRIVILEGES;
4.再次檢視MySQL遠端通路權限配置
select User,authentication_string,Host from user;
此時,root已經多了一條記錄,且Host記錄值為%,代表已經開啟了root的遠端通路權限,我們後續就可以通過root使用者遠端通路該MySQL了
注意:
出于安全性考慮,尤其是正式環境下
1.不推薦直接給root開啟遠端通路權限。
本案例僅以root使用者作為例子做開啟遠端通路權限的配置,此為示範環境!
2.建議做權限細分和限制
正式環境中,推薦通過建立Mysql使用者并給對應的使用者賦權的形式來開放遠端服務權限,并指定IP位址,賦權時根據使用者需求,在GRANT指令中隻開放slect、update等權限,做到權限粒度最小化。