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。