得到一个小脚本来提取一些mySQL服务器变种并在不同版本上测试我的脚本。我的shellcript是:
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)
任何人都知道什么是错的?
答案 0 :(得分:0)
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"
答案 1 :(得分:0)
错误表示找不到/etc/init.d/mysql
。您需要将其更改为/usr/bin/mysql
,它应该可以正常工作。