从远程客户端连接到Dockerized MySQL

时间:2016-03-16 02:53:27

标签: mysql docker

tl; dr:数据库曾经可以从远程连接,但在对它进行对等化后,它不是(虽然我可以从主机访问)。

我使用以下命令在ec2实例中设置了一个运行MySQL的docker容器:

sudo docker run --name mysql-csm -p 3306:3306 -v /db/mysql:/var/lib/mysql -v /db/mysql-config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=password -d mysql

其中:-v /db/mysql:/var/lib/mysql将我的主机数据库映射到docker

-v /db/mysql-config:/etc/mysql/conf.d将我的主机自定义配置文件映射到dockerized MySQL配置。主机文件应该是先例,我的自定义配置包含一行:

[mysqld]

bind-address = 0.0.0.0

我可以使用以下命令通过host命令行连接到数据库:

sudo docker run -it --link mysql-csm:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -u"user" -p"pw"'

从MySQL命令行,所有表格等都存在。看起来不错。这个数据库之前运行的是常规MySQL版本,我可以远程连接。

但是,当我尝试使用MySQL Workbench从我的笔记本电脑连接时,收到错误:

Table 'performance_schema.session_variables' doesn't exist

谷歌搜索表明它与升级有关,但我不确定如何解决这个问题。

ETA:尝试通过SSH登录时遇到同样的错误 - >通过MySQL Workbench实现TCP / IP。

0 个答案:

没有答案