我使用以下命令在docker中启动mysql:
docker run --name mysql-for-teamcity \
-e MYSQL_ROOT_PASSWORD=FAKE-ROOT-PW\
-v ~/MySQL/var_lib_mysql:/var/lib/mysql \
-p 3306:3306 \
-p 33060:33060 \
-it mysql
但是teamcity无法连接mysql,错误消息是:
我可以使用以下命令连接到终端中的mysql:
mysql -u root --protocol=tcp -p
“teamcity”数据库也已经建立。
我的环境:
mac os x 10.14.1版
docker desktop 2.0.0.0-mac81(29211)
teamcity和mysql在独立的docker容器中运行
两个docker图像标签都是最新的
1条答案
按热度按时间sqyvllje1#
原因是teamcity和mysql在不同的容器中运行,所以当我为teamcity指定“127.0.0.1”时,它不可能连接到mysql。因为它们不是在同一台主机上运行的。
解决方案是使用docker compose,默认情况下为容器建立本地网络。
步骤1:在要放置teamcity的空目录中创建docker-compose.yml:
步骤2:在同一目录中创建mysql.env:
第三步:跑步
docker-compose up -d
在终点站第四步:打开“http://127.0.0.1浏览器中:8111英寸
第5步:输入“mysql:3306“在数据库主机字段中。