MySQL設置容許用戶遠程登陸

項目中須要鏈接虛擬機上面的MySQL數據庫,可是老是出錯,懷疑本機是否有鏈接遠程數據庫的權限。mysql

 

執行命令:sql

mysql> use mysql;
mysql> select host,user from user;

查看結果是否是root用戶僅容許本地(localhost)登陸,下面這個截圖就是這種狀況:數據庫

 
mysql-root-state

是的話,就要修改它的host爲%,表示任意IP地址均可以登陸。緩存

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

執行完後可能提示error。再mysql> select host,user from user;查看下吧。服務器

root對應的host成了%,表示能夠任意IP地址登陸了。spa

 
mysql-change-root-state
mysql> flush privileges;

把緩存flush掉,在使用update語句修改用戶記錄後,須要FLUSH語句告訴服務器重載受權表。code

                                                                                                                                                                   

 

 

MySQL默認在本地localhost登陸root用戶,然而遠程鏈接卻會報錯(root@X.X.X.X acess denied)cmd

這裏就須要進行配置容許遠程鏈接虛擬機

方式一:
進入mysql: mysql -uroot -p
運行mysql: use mysql;
開啓遠程訪問權限: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'amigo'
強制刷新權限: flush privileges;
關閉mysql: exit;
 it

方式二:
進入mysql: mysql -uroot -p
運行mysql: use mysql;
查看用戶表: SELECT `Host`,`User` FROM user;
更新用戶表: UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
強制刷新權限: flush privileges;
關閉mysql: exit;
 

開啓關閉服務器防火牆:
查看防火牆是否開啓(若是顯示running,則防火牆爲開啓狀態): 

firewall-cmd --state
關閉防火牆:

 systemctl stop firewalld.service
開啓防火牆: 

systemctl start firewalld.service
關閉開機自啓動: 

systemctl disable firewalld.service
開啓開機自啓動: 

systemctl enable firewalld.service  

 
相關文章
相關標籤/搜索