一.问题描述
(1)在Docker中部署mysql容器;
(2)远程连接工具可以成功连接之后,只会显示自动生成的数据库,其他的数据库无法显示;
(3)无法使用远程连接工具创建数据库(Navicat):一旦执行创建数据库,就报1044异常。
(4)进入docker中的mysql容器中,却可以正常创建数据库。
二.问题原因
远程连接用户权限不足
三.解决办法
1.修改权限
查询用户表看root用户权限
SELECT host,user,Grant_priv,Super_priv FROM mysql.user;
修改权限并刷新,命令如下
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
2.赋权
总共需要以下三条命令文章来源:https://www.uudwc.com/A/moM5W/
use mysql;
update user set host='%' where user='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
最后重启Docker和Mysql容器文章来源地址https://www.uudwc.com/A/moM5W/
systemctl restart docker
docker restart mysql