![](/img/trans.png)
[英]ERROR 2003 (HY000): Can't connect to MySQL server on [IP] (111 “Connection refused”)
[英]Gitlab-ci running mysql docker and connect it with error ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (111)
我看到了关于这些问题的其他帖子,但没有针对下面描述的具体案例。 在我的 gitlab-ci 测试管道配置中,我想运行 mysql docker,并直接从我的运行器连接到它。 但是我很难连接到数据库。 这是我的 gitlab-cy-yml 测试步骤:
services:
- docker:dind
- mysql:5.7
script:
- apt-get update && apt-get install -y git curl libmcrypt-dev default-mysql-client
- mysql --version
- sleep 20
- docker login -u XXXXXXXX -p XXXXXXXXX
- docker pull mysql:5.7
- docker run --name ticketsDB -d -p 3304:3306 -it -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7
- mysql --protocol=tcp -u root -P 3304
- create database ticketOnline;
- use ticketOnline;
错误是在mysql --protocol=tcp -u root -P 3304
connections期间:
错误 2003 (HY000):无法连接到“本地主机”上的 MySQL 服务器 (111)
我哪里做错了?
在您的设置中不需要docker:dind
服务。
job:
variables:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
MYSQL_DATABASE: ticketsDB
services:
- mysql:5.7
script:
- apt-get update && apt-get install -y git curl libmcrypt-dev default-mysql-client
- mysql --version
- sleep 20
- mysql --protocol=tcp -u root -P 3304 -h mysql -e "create database ticketOnline; use ticketOnline;"
# -h to specify the host and -e to run a SQL query
编辑:
错误 2003 (HY000):无法连接到“本地主机”上的 MySQL 服务器 (111)
发生错误是因为您尝试连接到localhost
而不是 mysql 服务。 默认情况下,服务具有默认由 GitLab 创建的别名。 在文档中了解更多信息。
如果您需要多个 mysql 实例,您可以像这样使用多个别名:
services:
- name: mysql:5.7
alias: mysql-1
- name: mysql:5.7
alias: mysql-2
script:
- mysql mysql --protocol=tcp -u root -P 3304 -h mysql-1 # to connect to the first
- mysql --protocol=tcp -u root -P 3304 -h mysql-2 # to connect to the second.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.