从远程客户端连接到Dockerized MySQL
tl; dr:数据库用来从远程连接,但在docker化后,它不是(虽然我可以从主机访问)。
我已经build立了一个在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
将我的主机自定义configuration文件映射到docker化的MySQLconfiguration。 主机文件应该是先例,我的自定义configuration包含一行:
[mysqld] bind-address = 0.0.0.0
我可以通过主机命令行使用以下命令连接到数据库:
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
谷歌search表明这是升级,但我不知道如何解决这个问题。
ETA:当试图通过SSH工作台login – > TCP / IP通过MySQL工作台时,我得到相同的错误。