我正在尝试从外部文件执行mysql,这就是我在做什么:mysql -u "root" -p < "init.sql"
#在终端中调用它
尝试过这样的事情:
init.sql的内容:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
但这最终导致:第5行的错误1396(HY000):“ myuser” @“ localhost”操作CREATE USER失败
阅读建议先删除用户的帖子时:
init.sql的内容:
DROP USER 'myuser'@'localhost';
FLUSH PRIVILEGES;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
但我收到一个错误:第3行的错误1396(HY000):'myuser'@'localhost'的DROP USER操作失败
这是正常的,因为用户不存在。如果仅将这些内容粘贴到命令行中,而不是通过bash粘贴,则此工作流程将完美工作。
最佳答案
您不需要外部文件,而为此使用bash
here-docs。
mysql -u "root" -p <<EOF
DROP USER 'myuser'@'localhost';
FLUSH PRIVILEGES;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
EOF