
vagrantなどのローカル開発環境、ターミナルでMySQLを扱うときに注意しておくべきことって何かなあ?という疑問にお答えします。
今回は、MySQLを扱っていて、初心者が注意すべきことをザックリご紹介します。
練習でいろいろいじってたら、いつの間にかMySQLがおかしくなったということはありませんか?
ボクはvagrantでMySQLの練習をしていて、いつの間にか動作がおかしくなりました。
具体的には、ユーザーとデータベースを作り、権限を与えるSQLを外部ファイルに書いても、エラーが出てちゃんと動作しなくなりました。
それでは、ザックリですので、あくまで参考にしてください。
MySQLのエラーメッセージが出たらググる

MySQLのエラーをコピペして検索
ターミナルでMySQLを実行してエラーが出たら、まずエラーの文をコピーして、
そのままgoogleに貼り付けてググって、エラーの解決策を見つけてみましょう。
大体は、解決策が見つかるかと思いますので、理解できる解決方法でしたら、そのままググった解決策を実行すると解決できるでしょう。
エラーをコピペしてググっても解決策が見つかりそうにないとき
エラーの状況に合わせたキーワードをいろいろ入力して、ググってみましょう。
これは、キーワードを考えるのも大変ですが、少し粘って頑張ってみましょう。
ググっても解決策が見つかりそうにない、または理解できない場合
ダラダラと長時間、解決策を探しまわるのはとても疲れます。
判断力が鈍って、これなら行けそうかな?みたいな解決策でも試してしまう恐れがあります。
なので、60分などと時間を決めて、一旦、解決策を探すのを切り上げることが、意外と大切です。
ちなみに、googleの研究開発のチームには、15分ルールがあるらしいです。15分調べても分からないものは、ひとに聞いたり。
ダラダラと長い時間を使うよりも、ググる時間を決めて、一旦切り上げることで、冷静にもなれてじっくり考えられるので、良さげですね。
ツイッター上で話題になりました。埋め込んだツイートが、ソースです。
MySQLの解決策をググる際の注意点
解決策の内容がほとんど理解できないまま、とりあえず解決策をマネするのは危険です!
初心者のうちは、理解できない解決策を実行すると、もっと取り返しのつかないことになりかねないので、安易に実行しないようにしましょう。
MySQLをバージョンアップしたら治るのでは?と考えてやってみたのですが、ボクの場合はMySQLを使うことすらできなくなり、一層おかしくなりました。
悪循環にハマりやすいので、ググった際に、安易に解決策を実行しないよう注意したいですね。
rootユーザーでMySQLを扱うときは慎重に操作する

そもそもおかしくなる原因は、権限が広くて、なんでも操作できてしまうrootユーザーで作業することが原因となっている可能性が高いです。
なので、rootユーザーでMySQLにログインしてデータベースやテーブル、ユーザーを作ったり削除したり、rootで作業する際は、細心の注意を払いましょう!
rootで作業して起こったミスの実例
ここで、ボクがrootユーザーで実際にやってしまったミスをご紹介します。
些細な操作ミスでエラーになり、エラーの原因がわからず、結局、MySQLを削除してvagrantの再構築からやり直したという痛い経験をしました。
このせいで、かなり時間を消費しました。
そのミスが、こちらです。
rootでMySQLにログインし、show databasesコマンドでデータベースをみると、
「 mysql 」というデータベースがあります。

この「 mysql 」はmysqlが準備している、消してはならない、重要なデータベースだったのです!
ボクはこれを、自分で練習用か何かで作ったと思って、ほぼ無意識にサクッとdrop databaseで削除してしまっていたのです。。
なるべく作業用ユーザーでMySQLを操作する
また、対策として、権限の限られた作業用ユーザーを新規に作って、できるだけ作業用ユーザーでMySQLを操作するのも良いですね。
作業用ユーザーでは権限がない操作を不意にやってしまっても、操作できないので思わぬ操作を防止できます。
作業用ユーザーだと、通常はsudoを付けて実行するか、rootに切り替えなければ重要な操作をできないので、意識付けされて良さげですね。
まとめ

- まず、MySQLでエラーが出たらエラー文をコピペしてgoogle検索でググって解決策を探す。
- それで見つからないときは、エラーに関連するキーワードでググって解決策を探す。
- 注意点として、理解できない解決策を実行すると、泥沼化する可能性大なので避ける。
- エラーの解決策を探すのに、長い時間をかけすぎない。最長60分など、時間制限を決めて一旦切り上げる。
- rootユーザーで作業する際は、細心の注意を払う。
- 作業業ユーザーを作って、なるべく作業用ユーザーで作業する。必要なときだけrootユーザーに切り替えたり、sudoコマンドで操作する。
以上が、ローカル開発環境、ターミナルでMySQLを操作するときに注意したい内容です。ボクは痛い目に合いましたので、細心の注意を払って操作するようになりました。
思わぬ操作がエラーにつながり、原因が分からず余計な時間を消費することになりますので、MySQLの操作時は、注意しましょう!
コメント