我已經看到關于這些問題的其他帖子,但對于下面描述的特定情況沒有任何內容。在我的 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連接期間:
錯誤 2003 (HY000): 無法連接到“本地主機”上的 MySQL 服務器 (111)
我在哪里做錯了?
uj5u.com熱心網友回復:
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.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455316.html
