【发布时间】:2021-10-23 01:16:51
【问题描述】:
我正在尝试运行带有命令的 shell 脚本来运行 Django 服务器。
#!/bin/bash
docker run -e MYSQL_ROOT_PASSWORD=root --name db_name -d mariadb
docker exec -it container_name mysql -u root -proot -e "create database db_name CHARACTER SET UTF8; CREATE USER invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$'; GRANT ALL PRIVILEGES ON db_name .* TO invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$';"
#mysql -u root -proot -e "create database db_name CHARACTER SET UTF8; CREATE USER invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$'; GRANT ALL PRIVILEGES ON db_name .* TO invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$'"
echo "Docker image name will be $1"
python3 manage.py makemigrations
python3 manage.py migrate
docker build . -t $1
docker run -d -p 8000:8000 $1
在这个脚本中,当我尝试运行时:
docker exec -it container_name mysql -u root -proot -e "create database db_name CHARACTER SET UTF8; CREATE USER invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$'; GRANT ALL PRIVILEGES ON db_name .* TO invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$';"
我收到此错误:
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
或者当我跑步时:
mysql -u root -proot -e "create database db_name CHARACTER SET UTF8; CREATE USER invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$'; GRANT ALL PRIVILEGES ON db_name .* TO invuser@XXX.17.0.3 IDENTIFIED BY 'root1234$'"
我收到此错误:
ERROR 2002 (HY000): Can't connect to MySQL server on 'XXX.17.0.2' (115)
但是当我从脚本中手动运行这个命令时,它会按预期工作并创建数据库和用户。
有人可以建议一个更好的方法来通过脚本实现这个吗? 我正在使用 Centos 7 顺便说一句。
谢谢
【问题讨论】:
标签: mysql django linux shell mariadb