Я запускаю локально запущенный экземпляр docker, создаю пользователя и пытаюсь запускать команды с помощью локального клиента mysql после предоставления привилегий, и он говорит, что не может подключиться с узла jenkins к контейнеру docker.Я использую подстановочный знак для предоставления пользователю прав на всех хостах и всех разрешениях.
Я запускал этот сценарий локально, и он работал и не вызывал проблем, в настоящее время при запуске в Jenkins мне не дают разрешения на команды:
mysql --user="user" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="user" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="root" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="root" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
docker logs mysql
echo "good"
выходные данные jenkins
21:33:53 [-clinical-codes_add-jenkins-QLNQBBZFU3HAJI4FX6MOTIRSLH5SPBXG5JYMD5OJHQX6KS2JPKCA] Running shell script
21:33:53 Remove Docker Contianer
21:33:54 1fc9f9846888
21:33:54 Check Docker containers
21:33:54 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21:33:54 9a002c63aa48 anchore/jenkins:latest "/bin/sh -c /root/up…" 6 weeks ago Exited (255) About an hour ago jenkins_anchore
21:33:54 5.7: Pulling from mysql/mysql-server
21:33:54 Digest: sha256:79d65bf4360056b0709b4a1c4996f7ef8265ae6ca67462a8570ac1fa0855758b
21:33:54 Status: Image is up to date for mysql/mysql-server:5.7
21:33:54 9a26401c25c61ab30cc744f551672e476a3fc95bea48e4f532afc596a601bd53
21:34:28 the input device is not a TTY
21:34:28 the input device is not a TTY
21:34:28 the input device is not a TTY
21:34:28 the input device is not a TTY
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 [Entrypoint] MySQL Docker Image 5.7.24-1.1.8
21:34:28 [Entrypoint] Initializing database
21:34:28 [Entrypoint] Database initialized
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
21:34:28
21:34:28 [Entrypoint] ignoring /docker-entrypoint-initdb.d/*
21:34:28
21:34:28 [Entrypoint] Server shut down
21:34:28
21:34:28 [Entrypoint] MySQL init process done. Ready for start up.
21:34:28
21:34:28 [Entrypoint] Starting MySQL 5.7.24-1.1.8
21:34:28 good
Я явно запутываю фактического пользователя и пароль, который я использую для стекового сообщения.
if [ -z $(docker ps -a | grep mysql | cut -d " " -f 1) ]; then
docker pull mysql/mysql-server:5.7
docker run --name mysql -e MYSQL_DATABASE="global" -e MYSQL_ROOT_HOST="127.0.0.1" -e MYSQL_ROOT_PASSWORD="password" -p 3306:3306 -d mysql/mysql-server:5.7
sleep 30
else
echo "Remove Docker Contianer"
docker rm -f $(docker ps -a | grep mysql | cut -d " " -f 1)
echo "Check Docker containers"
docker ps -a
docker pull mysql/mysql-server:5.7
docker run --name mysql -e MYSQL_DATABASE="global" -e MYSQL_ROOT_HOST="127.0.0.1" -e MYSQL_ROOT_PASSWORD="password" -p 3306:3306 -d mysql/mysql-server:5.7
sleep 30
fi
docker exec -it mysql mysql --user root --password=password -D global -e "CREATE USER 'user'@'%' IDENTIFIED BY 'password';"
docker exec -it mysql mysql --user root --password=password -D global -e "GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';"
docker exec -it mysql mysql --user root --password=password -D global -e "UPDATE mysql.user SET Super_Priv='Y' WHERE user='user' AND host='%';"
docker exec -it mysql mysql --user root --password=password -D global -e "FLUSH PRIVILEGES;"
mysql --user="user" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="user" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="root" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="root" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
docker logs mysql
Что такоеЯ здесь скучаю?