簡體   English   中英

mySQL Docker“ ERROR 2002(HY000):無法通過套接字連接到本地MySQL服務器”

[英]mySQL Docker “ERROR 2002 (HY000): Can't connect to local MySQL server through socket”

有一個小腳本可以提取一些mySQL服務器變體並在不同版本上測試我的腳本。 我的shellscript是:

docker pull mysql:$version
docker run -d -v $(pwd)/mysql.sh:/mysql.sh --name=mysql."$version" -e MYSQL_ROOT_PASSWORD='root' mysql:"$version"
docker exec -it mysql."$version" bash -c 'bash ./mysql.sh'

mysql.sh文件是:

/etc/init.d/mysql restart || service mysql restart || service mysqld restart
mysql -proot -e "SELECT @@version"

我收到以下錯誤:

./mysql.sh: line 1: /etc/init.d/mysql: No such file or directory
mysql: unrecognized service
mysqld: unrecognized service
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

有人知道怎么了嗎?

docker不使用服務的init.d結構,因為它沒有服務。 如果檢查Dockerfile內部,將看到mysql在前台啟動。

在您的第一個腳本中,不需要命令docker exec -it mysql."$version" bash -c 'bash ./mysql.sh'是不需要的。 您應該將其替換為:

docker exec -it mysql."$version" mysql -proot -e "SELECT @@version"

該錯誤表明未找到/etc/init.d/mysql 您需要將其更改為/usr/bin/mysql ,它應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM