如何连接到从主机运行在容器中的mysql [英] How to connect to mysql running in container from host machine

查看:380
本文介绍了如何连接到从主机运行在容器中的mysql的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 https://github.com/sameersbn/docker-mysql 使用virtualbox在OSX中使用 docker-machine 运行一个mysql容器。

I'm using https://github.com/sameersbn/docker-mysql to run a mysql container using docker-machine in OSX with 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 连接。

Now, when I try to connect to the mysql in the container from my hostmachine I can connect using user sampleuser but not as user 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地址

192.168.99.1 is my local laptops ip address

▶ ifconfig | grep "192"
    inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255


推荐答案

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

By default, root only has access from the localhost, 127.0.0.1 & ::1, you need to specifically allow access from 192.168.99.1 or from anywhere using '%' in the user setup : see here http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

这篇关于如何连接到从主机运行在容器中的mysql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆