该错误表示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 重启容器即可解决文章来源:https://www.toymoban.com/news/detail-605311.html
文章来源地址https://www.toymoban.com/news/detail-605311.html
到了这里,关于Navicat远程连接,Docker中的mysql,新建数据库时报错:1044 -Access denied for user ‘root‘@‘%‘ to database的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!