其实呢...并没有那么复杂
第一步:docker run -d -p 3306:3306 --name 自己起的容器名字 --restart always(总是启动,可选)-e MYSQL_ROOT_PASWORD=你的初始密码 镜像id
第二步:docker exec -it 容器id /bin/bash进入容器,查看mysql授权情况:
select User,authentication_string,Host from user;查看root用户对应host是否为%,允许远程连接
第三步:如果不是的话,则授权:
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址
2.flush privileges; 这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据 因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
mysql8.X授权命令变化:GRANT ALL ON *.* TO 'root'@'%'; ps:这里是个坑,8.x变化蛮多的,其他新特性请自行查资料