如何从主机连接到容器中的 mysql 运行
How to connect to mysql running in container from host machine
我正在使用 https://github.com/sameersbn/docker-mysql 到 运行 一个 mysql 容器,在 OSX 中使用 docker-machine
和 virtualbox。
我创建了一台新机器
docker-machine create --driver virtualbox mytest
IP是
docker-machine ip mytest
192.168.99.103
我运行容器是这样的:
docker run -p 3306:3306 --name mysql -d \
-v /opt/mysql/data:/var/lib/mysql \
-e 'DB_USER=sampleuser' -e 'DB_PASS=samplepass' -e 'DB_NAME=sampledb' -e 'DB_REMOTE_ROOT_NAME=root' -e 'DB_REMOTE_ROOT_PASS=samplerootpass' \
sameersbn/mysql:latest
现在,当我尝试从我的主机连接到容器中的 mysql 时,我可以使用用户 sampleuser
而不是用户 root
.
进行连接
▶ mysql -u root -p -h 192.168.99.103
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'192.168.99.1' (using password: YES)
192.168.99.1
是我本地笔记本电脑的 ip 地址
▶ ifconfig | grep "192"
inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255
默认情况下,root 只能从本地主机 127.0.0.1 和 ::1 进行访问,您需要特别允许从 192.168.99.1 或在用户设置中使用“%”的任何地方进行访问:请参阅此处 http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html
我正在使用 https://github.com/sameersbn/docker-mysql 到 运行 一个 mysql 容器,在 OSX 中使用 docker-machine
和 virtualbox。
我创建了一台新机器
docker-machine create --driver virtualbox mytest
IP是
docker-machine ip mytest
192.168.99.103
我运行容器是这样的:
docker run -p 3306:3306 --name mysql -d \
-v /opt/mysql/data:/var/lib/mysql \
-e 'DB_USER=sampleuser' -e 'DB_PASS=samplepass' -e 'DB_NAME=sampledb' -e 'DB_REMOTE_ROOT_NAME=root' -e 'DB_REMOTE_ROOT_PASS=samplerootpass' \
sameersbn/mysql:latest
现在,当我尝试从我的主机连接到容器中的 mysql 时,我可以使用用户 sampleuser
而不是用户 root
.
▶ mysql -u root -p -h 192.168.99.103
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'192.168.99.1' (using password: YES)
192.168.99.1
是我本地笔记本电脑的 ip 地址
▶ ifconfig | grep "192"
inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255
默认情况下,root 只能从本地主机 127.0.0.1 和 ::1 进行访问,您需要特别允许从 192.168.99.1 或在用户设置中使用“%”的任何地方进行访问:请参阅此处 http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html