当我启动 mysql 时,我收到“没有这样的文件或目录”,即使该文件存在于正确的目录中。
脚本:
#!/bin/bash
/usr/bin/docker exec -i mysql /bin/bash <<EOF
mysql -uroot -ppasswd
CREATE DATABASE theDB CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES on theDB.* to user@'%' IDENTIFIED BY 'passwd';
FLUSH PRIVILEGES;
EOF
docker.yml:
version: "2"
services:
mysql:
image: mysql:latest
restart: always
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD=passwd
volumes:
- /temp/mysql_cnf:/etc/mysql/mysql.conf.d
ports:
- 3306:3306
command: /bin/sh -c "chmod +x /home/user/mysql-container/thescript.sh && /bin/sh /home/user/mysql-container/thescript.sh"
~
最佳答案
乍一看,我怀疑这是因为您的内联段被解释为多个命令。尝试添加“\”来抑制 EOL:
/usr/bin/docker exec -i mysql /bin/bash <<EOF
mysql -uroot -ppasswd \
CREATE DATABASE theDB CHARACTER SET utf8 COLLATE utf8_general_ci; \
GRANT ALL PRIVILEGES on theDB.* to user@'%' IDENTIFIED BY 'passwd'; \
FLUSH PRIVILEGES;
EOF
关于linux - 使用脚本文件没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43340101/