2017-01-06 5 views
0

で外部SQLファイルからMySQLのコマンドを実行:ターミナル私は外部ファイルからMySQLを実行しようとしています、これは私がやっているものですターミナル

でこれを#calling

mysql -u "root" -p < "init.sql"はこのような何かをしようとしました:

init.sql内容:

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

これはで終わる:ライン5にERROR 1396(HY000):操作は、ユーザのCREATE M」に失敗しました内容init.sql

DROP USER 'myuser'@'localhost'; 

FLUSH PRIVILEGES; 

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

が、私はエラーを取得:ERROR 1396(HY000 yuserは '@'」

最初のユーザーを削除することをお勧めしていることを記事を読んlocalhostの)3行目:操作 'DROP USER'が 'myuser' @ 'localhost'のために失敗しました

これはユーザーが存在しないため正常です。このワークフローは、コマンドラインで貼り付けてもbashでは貼り付けないと完全に動作します。

答えて

0

外部ファイルは必要ありませんが、代わりにbashhere-docsを使用してください。

mysql -u "root" -p <<EOF 
DROP USER 'myuser'@'localhost'; 
FLUSH PRIVILEGES; 
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password'; 
EOF 
関連する問題