さて、MySQLについて書くのはこれで3回目だが、過去2回分については、サラサラと何事もなくスムーズに事が運んできたかのように書いてきている。
だが、実のところは、躓くべきところで見事に躓き、躓かなくてもいいところでも、すっころんでの繰り返しだった。
そのたびに、ウェブの情報を漁って、どうにかやりくりしたのが実際のところで、とてもスマートとは言えない状況だった。
そうした 「カッコ悪い事」はなかった事として封印してきたのだが、相変わらず同じポイントで躓くのと、わずかでもこのページを訪れる人に助けになればと、いくつか明らかにする事にする。
ログイン問題
HomebrewでMySQLを導入するのは、何事もなくスムーズに終了。しかし、ログインが出来ない・・Web上の情報には、
mysql -uroot -pを打てとあるが、パスワードを入れた後に、
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)と怒られる。「mysql.sockに接続できない」って何!?と泡食って、当該ディレクトリを空にしてみたり、touchして空のファイルを作ってみたりするがダメ。
mysql.server startしてこれは解決。
セミコロン問題
いくつかMySQLの入門サイトを巡っては、あれやこれやコマンドを試してみるのだが、その過程ではまったのが、「;」。MySQLに限らず、文の区切りにセミコロンを使うのは珍しくない。が、それでもうっかり忘れる。忘れると当然そのステートメントは実行されず、
mysql> show databases ->という具合に、「入力待ち」の状態になる。最初はこの見慣れない矢印のようなプロンプトに面食らってしまったが、何のことはない、続けてセミコロンを打ってやればよい。
このようにセミコロン忘れるべからずなのだが、一方で先般のサイトの例の中には、
show databases;や、
SELECT * FROM person;のようにセミコロンで文が終わるものと、
USE personや、
quit等のように、セミコロンが付かないものがある。とりあえず、後者にセミコロンを付けても問題なく実行されるので、手当たり次第に付けてしまえという解決策も無いではないが、それではややすっきりしない。
ということで調べると・・ありました。こちらによると、
- セミコロンあり
- SQLステートメント
- セミコロンなし
- MySQLコマンド
mysql> helpすると出てくるやつ。これらに対してはセミコロンを付けないのが正式らしい。覚えよう!