Navicat远程连接,Docker中的mysql,新建数据库时报错:1044 -Access denied for user ‘root‘@‘%‘ to database

 该错误表示root用户没有访问指定数据库的权限

 解决办法就是重新赋权

1.访问 Docker 容器内的 MySQL 命令行界面

docker exec -it mysql mysql -u root -p

2.输入 root 用户的密码

密码是不会显示的,输入完后Enter即可

3.切换数据库

use mysql;

4.更新表host中的列,将根用户的mysql.user值设置为。'%'

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

        默认情况下,MySQL 中的 root 用户只允许从本地计算机(即localhost)进行连接。但是,通过将host列更新为'%',就允许 root 用户从任何主机进行连接,但是可能存在安全风险。如果要限制 root 用户对特定主机的访问,可以将 替换'%'为适当的主机名或 IP 地址。

5.授予 root 用户对 MySQL 服务器中所有数据库和表的所有权限,并能够从任何主机 ( '%') 进行连接。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

 6.exit退出后   docker restart mysql 重启容器即可解决

猜你喜欢

转载自blog.csdn.net/m0_74421344/article/details/130977850