从终端的外部sql文件执行mysql命令

时间:2017-01-06 09:11:45

标签: mysql bash

我正在尝试从外部文件执行mysql,这就是我正在做的事情:

mysql -u "root" -p < "init.sql" #calling in terminal

尝试过这样的事情:

init.sql内容:

 CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';

但最终会出现:第5行的ERROR 1396(HY000):'myuser'@'hosthost'的操作CREATE USER失败

当阅读帖子时,建议先删除用户:

init.sql内容:

DROP USER 'myuser'@'localhost';

FLUSH PRIVILEGES;

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';

但是我收到错误:第3行的错误1396(HY000):'myuser'操作DROP USER失败@'localhost'

这是正常的,因为用户不存在。如果我只是在命令行中粘贴这些工作流程,而不是通过bash,则此工作流程可以正常工作。

1 个答案:

答案 0 :(得分:0)

您不需要外部文件,而是使用bash here-docs

mysql -u "root" -p <<EOF
DROP USER 'myuser'@'localhost';
FLUSH PRIVILEGES;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
EOF