MySQL8.0允许外部访问
1,登進MySQL之后,
2,輸入以下語句,進入mysql庫:
use mysql3,更新域屬性,'%'表示允許外部訪問:
update user set host='%' where user ='root';4,執行以上語句之后再執行:
FLUSH PRIVILEGES;5,再執行授權語句:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;然后外部就可以通過賬戶密碼訪問了。
6,其它說明:
FLUSH PRIVILEGES; 命令本質上的作用是:
將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存里。
MySQL用戶數據和權限有修改后,希望在"不重啟MySQL服務"的情況下直接生效,那么就需要執行這個命令。
通常是在修改ROOT帳號的設置后,怕重啟后無法再登錄進來,那么直接flush之后就可以看權限設置是否生效。
而不必冒太大風險。
?
三、可能存在的其它問題:
執行完之后,再用Navicat連接mysql,報錯如下:
Client does not support authentication protocol requested by server;
報錯原因:
mysql8.0 引入了新特性 caching_sha2_password;這種密碼加密方式Navicat 12以下客戶端不支持;
Navicat 12以下客戶端支持的是mysql_native_password 這種加密方式;
解決方案:
1,用如下語句查看MySQL當前加密方式
?
看第一行,root加密方式為caching_sha2_password。
2,使用命令將他修改成mysql_native_password加密模式:
update user set plugin='mysql_native_password' where user='root';再次連接的時候,就成功了。
?
四、如果還連接不上
通過以上操作后,依然無法連接上,問題可能出在了防火墻上。
1,MySQL部署在實體服務器上解決方案如下:
a.開放MySQL的端口號,默認端口號是3306。
b.直接關閉防火墻(慎重操作,不建議。當然測試玩的話就隨意了。。。。)
2,MySQL部署在云計算機上的方案如下:
a.以阿里云為例,找到實例,設置安全組,開放端口號即可。
?
總結
以上是生活随笔為你收集整理的MySQL8.0允许外部访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apollo数据库安装与常见错误说明
- 下一篇: Apollo客户端读取数据原理