質問: mysqlにおいて外部に保存したファイルをどうすれば実行出来るかということについての質問です。 外部ファイルを実行する為にはmysql -u root<(実行ファイルの名前)と書けばいいと、解説サイトの動画では説明されていました。ところが、見様見真似でやってはみましたが、エラーが発生していしまいうまくいきませんでした。 状況が言葉では伝わりづらいと思うので、画像をはっておきます。 どうすれば外部ファイルを実行できるでしょうか、おしえてほしいです;; ※参考にしている解説サイト。有料会員じゃないと見れないこともあります。ごめんなさい;; [https://dotinstall.com/lessons/basic_mysql_v3/40105] ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/8ddc3e259f6fd663fb01f241668a0765.png) --- 実行したい外部ファイルのコード ``` drop database if exists myapp; create database myapp; grant all on myapp.*to ec2-user identified by 'aiueo'; ``` ターミナル ``` mysql -u root
回答: 外部の .sql ファイルから実行する方法は間違っていません。 > > ec2-user > > > ただ、ユーザ名等にハイフン(-)を使っているとその部分でシンタックスエラーになります。 これを避けるにはユーザー名をシングルクォートで囲ってやる必要があります。 ``` grant all on myapp.*to 'ec2-user' identified by 'aiueo'; ``` 往々にして mysql のエラーメッセージはあまり詳しいことを教えてはくれませんが、エラーメッセージの最後の部分、`for the right syntax to use near '-user identified by 'aiueo'' at line 1`を見ると`-user identified ...`のように不自然に途切れたユーザー名周辺に問題があると教えてくれているので、その辺りが怪しいとわかります。 また例えば MySQL Workbench のようなアプリケーションだともう少し具体的に問題点を教えてくれたりします。 !workbench_example