如何从主机连接到容器中运行的mysql

时间:2016-01-20 16:47:38

标签: mysql macos docker docker-machine

我正在使用https://github.com/sameersbn/docker-mysql在OSX中使用docker-machine运行mysql容器和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

现在,当我尝试从我的hostmachine连接到容器中的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

1 个答案:

答案 0 :(得分:0)

默认情况下,root只能访问localhost,127.0.0.1& :: 1,您需要专门允许从192.168.99.1或在用户设置中使用'%'的任何地方进行访问:请参阅此处http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html