我正在尝试从外部文件执行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

10-06 06:48