Cirrus CI - 无法连接到 MySQL 个附加容器
Cirrus CI - Can't connect to MySQL additional container
我运行在 Cirrus CI 上安装了一个容器,在我的 .cirrus.yml
中,我定义了一个 additional_container
到 运行 MySQL 根据 docs:
进行测试的实例
.cirrus.yml
container:
image: node:latest
additional_containers:
- name: mysql
image: mysql:8
port: 3306
cpu: 1.0
memory: 512Mi
env:
MYSQL_ROOT_PASSWORD: "pa55w0rd"
我正在尝试 运行 在我的一项设置任务中针对该实例执行 CREATE DATABASE
命令:
...
mysql_setup_script:
- mysql -uroot -ppa55w0rd -P3306 -hlocalhost -e "CREATE DATABASE voluble_test;"
...
我已经在我的测试容器上安装了 MySQL 客户端(但不是服务器,因为这会破坏对象)。但是,MySQL 就像连接到 true 本地主机数据库一样,并寻找本地安装的 MySQL 服务器,它出现了 - 并失败并显示以下内容错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
也就是说,Cirrus CI docs 声明 MySQL 实例应该在本地主机上可用:
Tests will be able to access MySQL instance via localhost:3306.
我看不出解决这个问题的明显方法 - 有什么建议吗?
使用localhost
会导致mysql无法使用网络。
使用 127.0.0.1
或您的 docker 主机 IP,具体取决于网络配置。
注意该错误不是网络错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
"through socket '/var/run/mysqld/mysqld.sock'",该文件未指向 docker 容器内的 mysql 套接字。
获取您的 docker 主机 IP:
$ docker network inspect bridge --format='{{ (index .IPAM.Config 0).Gateway}}'
我运行在 Cirrus CI 上安装了一个容器,在我的 .cirrus.yml
中,我定义了一个 additional_container
到 运行 MySQL 根据 docs:
.cirrus.yml
container:
image: node:latest
additional_containers:
- name: mysql
image: mysql:8
port: 3306
cpu: 1.0
memory: 512Mi
env:
MYSQL_ROOT_PASSWORD: "pa55w0rd"
我正在尝试 运行 在我的一项设置任务中针对该实例执行 CREATE DATABASE
命令:
...
mysql_setup_script:
- mysql -uroot -ppa55w0rd -P3306 -hlocalhost -e "CREATE DATABASE voluble_test;"
...
我已经在我的测试容器上安装了 MySQL 客户端(但不是服务器,因为这会破坏对象)。但是,MySQL 就像连接到 true 本地主机数据库一样,并寻找本地安装的 MySQL 服务器,它出现了 - 并失败并显示以下内容错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
也就是说,Cirrus CI docs 声明 MySQL 实例应该在本地主机上可用:
Tests will be able to access MySQL instance via localhost:3306.
我看不出解决这个问题的明显方法 - 有什么建议吗?
使用localhost
会导致mysql无法使用网络。
使用 127.0.0.1
或您的 docker 主机 IP,具体取决于网络配置。
注意该错误不是网络错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
"through socket '/var/run/mysqld/mysqld.sock'",该文件未指向 docker 容器内的 mysql 套接字。
获取您的 docker 主机 IP:
$ docker network inspect bridge --format='{{ (index .IPAM.Config 0).Gateway}}'