【发布时间】:2017-06-19 21:53:35
【问题描述】:
我正在尝试在我的主机系统中使用 MySQL docker 容器来简化安装和配置过程。
所以,我从以下位置提取了一张图片: https://hub.docker.com/r/mysql/mysql-server/
然后根据这个图像启动容器..
容器启动正常,但我无法从我的主机系统连接到该数据库(如果我尝试从容器连接,一切正常)。它失败并显示一条消息:
ERROR 1130 (HY000): Host '<here goes my IP>' is not allowed to connect to this MySQL server
所以,据我了解,我的 root 用户没有足够的权限。
我已进入我的容器:
docker exec -it mysql bash
连接到数据库:
mysql -uroot -ppassword
更新了我的根用户的权限:
use mysql;
UPDATE user SET Host="%" WHERE User='root';
已经更新好了。
我决定以某种方式保存我更新的图像......我找到了这个指南:
http://docs.oracle.com/cd/E52668_01/E75728/html/section_c5q_n2z_fp.html
执行后:
docker stop mysql
docker commit -m "Fixed permissions for root user" -a "Few words about author" `docker ps -l -q` myrepo/mysql:v1
docker rm mysql
docker run --name new-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pass -d myrepo/mysql:v1
我发现我的root 用户又没有权限了。
这里有什么问题? 如何将更新后的镜像公开到我的 Dockerhub 中?
【问题讨论】:
-
你试过执行
grant all privileges on *.* to root@'%'吗? -
啊,是的……对不起……我也这样做了。并刷新特权。我可以从我的主机系统发表评论,但我没有设法通过这些更改将我更新的图像推送到公共 DockerHub。