A.N.Variation

Affected Next Variation

【Mac】MySQLにおいて作業ユーザーを設定する際に、SQL文をテキストエディタで書いてコピペする時の注意点


こんにちは、iPhoneアプリ開発者の中川です。

最近はiPhoneアプリの制作活動を休止してRuby on Railsの勉強をしています。

Ruby on Railsの標準のデータベースはSQLiteなのですが、SQLiteだと型が限られていたり、外部キーの設定がややこしいという理由から、データベースはMySQLを採用して取り組んでいます。そんな大規模なアプリケーションを作ろうとしてるわけではないからSQLiteでもいい気がしますが、よくわかりません。。。

Ruby on Rails + MySQLの設定をする際に参考にしたサイトは以下
Mac環境の Rails 4 で MySQL を利用する手順
このサイトを下って行くと、

開発 & ローカル な環境 なので、root ユーザでいいとは思いますが、もし他のユーザでやる場合は恐らく DB の Create 権限があるユーザを作成するなど、きちんと権限を考える必要があるかと思います。

とあります。command + F でコピペして探してみてください。
ここで問題になってくるのが”Create 権限があるユーザを作成する”ということ。
特に複数人で開発をする上で、rootユーザーのパスワードが見えてしまっては何かと都合が悪い。

ということで、MySQLで作業ユーザーを設定していたのですが、
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘パスワード’’ at line 1

というエラーで捕まってしまいました。

いろいろ調べたのですが、解決方法が見つからない。エラー文には‘‘パスワード’’付近が間違ってるよ!とあるので、その付近をじろじろ見ながら解決方法を考えていました。

結論から言うと、
シングルクォーテーションをテキストエディタで書く場合とターミナルで書く場合で、’の記号が微妙に違うんです。

こんなオチはひどい!

成功する場合の作業ユーザー作成のSQL文を以下に記します。。。 エラーが出る場合は以下をコピペしてユーザー名、パスワードを修正して使ってください。それでも失敗する場合は直接ターミナルで’を書き直してください。