Linux 没有这样的文件或目录使用脚本文件
当我启动mysql时,我收到“没有这样的文件或目录”,即使该文件存在于正确的目录中 脚本:Linux 没有这样的文件或目录使用脚本文件,linux,bash,docker,Linux,Bash,Docker,当我启动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@'%' IDENTI
#!/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
~乍一看,我怀疑这是因为您的内联段被解释为多个命令。尝试添加“\”以禁止下线:
/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
/usr/bin/docker exec-i mysql/bin/bashCREATE
不是有效的bash命令。无论如何,Bash包装器shell在这里似乎是多余的
#!/bin/bash
/usr/bin/docker exec -i mysql mysql -uroot -ppasswd <<'EOF'
CREATE DATABASE theDB CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES on theDB.* to user@'%' IDENTIFIED BY 'passwd';
FLUSH PRIVILEGES;
EOF
#/bin/bash
/usr/bin/docker exec-i mysql-uroot-ppasswd如果体系结构不匹配,例如,如果您尝试在32位系统上执行64位二进制文件,或者相反,但这不起作用,您可能会收到(误导性的)错误消息“没有这样的文件或目录”,我会尝试添加-x(/bin/bash-x仍然是一样的,没有任何线索。谢谢,但它仍然给了我同样的错误。
#!/bin/bash
/usr/bin/docker exec -i mysql mysql -uroot -ppasswd <<'EOF'
CREATE DATABASE theDB CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES on theDB.* to user@'%' IDENTIFIED BY 'passwd';
FLUSH PRIVILEGES;
EOF