- 首先查看防火墙状态 systemctl status firewalld,关闭防火墙 systemctl stop firewalld
- 输入命令(mysql -uroot -p)登入mysql数据库
- 执行下面语句查看权限
use mysql; select host, user, authentication_string, plugin from user; 查看user表的root用户Host字段是localhost,说明root用户只能本地登录,现在把他改成远程登录 update user set host='%' where user='root'; # 下面是mysql5.7版本设置 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; - 刷新权限
flush privileges; - 使用navicat连接,如果出现密码加密规则报错可参考下面解决方案:
MySQL8.0之前的版本密码加密规则:mysql_native_password,
MySQL8.0密码加密规则:caching_sha2_password
所以需要修改mysql加密规则
'root'@'%'中%表示允许远程连接的hostALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; - 其它:如果需要支持 root - localhost(或者其他IP,例如127.0.0.1)可以使用插入语句
insert user (user, host, ssl_cipher, x509_issuer, x509_subject) values('root', 'localhost', '', '', ''); 插入之后再查看user表:(注意 ssl_cipher, x509_issuer, x509_subject这几个字段没有默认值,不设置会提示错误)
mysql8.0设置远程访问权限
于 2022-03-26 00:50:45 首次发布
本文介绍如何配置MySQL数据库以允许远程连接,包括修改root用户的Host字段、设置权限、刷新权限及调整密码加密规则等步骤。
936

被折叠的 条评论
为什么被折叠?



