Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 没有这样的文件或目录使用脚本文件_Linux_Bash_Docker - Fatal编程技术网

Linux 没有这样的文件或目录使用脚本文件

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

当我启动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

~

乍一看,我怀疑这是因为您的内联段被解释为多个命令。尝试添加“\”以禁止下线:

/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
CREATE
不是有效的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