MYSQLの起動が出来ない?ハマると意外にやっかいなソケットエラー

こんにちわ!ぼらです!(@bora_sns)

今日は久しぶりにCloud9を使ってLarabel環境を作ろうと思ったら初めてソケットエラーなるものに遭遇した話さ。

Cloud9様ならスムーズに環境構築出来るかと思いきや、初めてmysqlソケットエラーに遭遇して何気に2hぐらい画面とにらめっこしたよ。調べると結構情報や対策が出てくるからみなさん結構同じ状況になっているのかしら。どんな症状だったのかと、どう改善したかについて書きました。

結果的にmysql.sockを削除したら改善

いらないものはね、みんな消してしまえばいんだよ、ファイルも人間関係もね。ふふふ

今回遭遇したソケットエラーはざっと下記の流れになります。

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

↓↓↓

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (13)

↓↓↓

Socket file /var/lib/mysql/mysql.sock exists.
The file /var/lib/mysql/mysql.sock is not a socket file, which is suspicious.
Please, remove /var/lib/mysql/mysql.sock manually to start the service.


結果からお伝えすると自分は下記のコマンドで解決しました。


【rmコマンドで指定の場所の「mysql.sock」を削除】

Cloud9上にLaravelの環境を構築する

これは簡単スムーズに進められるんだけどね

ではちょっと詳細にやった流れをご紹介いたします!

今回は「Laravelの環境を構築してDBを作成、モデルクラス利用でDB操作をしたい」という目的があったので、まずはCloud9様で簡単にLaravel環境を構築してDB作成までさくっと行きたかったんですね。

Cloud9上でLaravelの環境を構築する手順は下記の①~④になります。
(Cloud9のアカウント作成などの前段階は済ませている前提となります)

  • PHPのインストール(元から入ってるかもです)
  • composerのインストール(無かった場合)
  • Laravelのインストール
  • Laravelプロジェクトの作成

 

PHPのverを確認



【composerの確認】



【composerのインストール(無かった場合)】



【composer.pharをpathの通った場所へ移動】



【再度composerを確認】←問題なくインストールされてるはず



【Laravelのインストール】



【Laravelのプロジェクトを作成する】

↑pathが通ってなくてLaravelコマンドが使えない可能性もあるのでその場合は下記のようにcomposerを使ってプロジェクトを作成)



ここまででLaravelのデフォルト画面を確認する事が出来るので確認してみましょう。
【作成したディレクトリに移動】



【Laravelのverを確認】



【サーバーに接続】

MYSQLを起動してDBを構築する

完成一歩手前でお預けをくらっちまったぜ

【MYSQLの起動】



はい!!!ここで止まりました!

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

こんなエラーが出てしまいました。。

(2)は「/var/lib/mysql/mysql.sock」このソケットを使ってMYSQL接続したいけど存在しないから出来ませんと言っているようだ。よっしゃ!なら指定の場所にmysql.sockファイル作ってやんよ!!そうして欲しいんだろう!?



【touchコマンドで指定の場所に「mysql.sock」を作成】

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (13)

(13)は「mysql.sock」を開く権限がありません。だと?よっしゃ!なら権限つけてやんよ



【chmodコマンドで権限を付与する】

Socket file /var/lib/mysql/mysql.sock exists.
The file /var/lib/mysql/mysql.sock is not a socket file, which is suspicious.
Please, remove /var/lib/mysql/mysql.sock manually to start the service.

(ソケットファイル/var/lib/mysql/mysql.sockが存在します。
ファイル/var/lib/mysql/mysql.sockはソケットファイルではなく、疑わしいファイルです。
/var/lib/mysql/mysql.sockを手動で削除して、サービスを開始してください。)
なめとんのか!?ボンレス猫の怒り
こんくそがっっ!

必要っていうからわざわざ作ったのになんでじゃい!!なめとったらあかんぞ!いかれポンチが!!



【rmコマンドで指定の場所の「mysql.sock」を削除】

結果的にrmコマンドで mysql.sock ファイルを削除したところ改善されたのですが、最初削除した時には改善されず、 (2)で「/var/lib/mysql/mysql.sockがないとダメだよ」的なエラーになり作って削除を2~3回繰り返した記憶があります。。
rmコマンドが単純なスペルミスで実行されてなかったのかなぁ、それならそれで自分がおバカさんだねって事で済むのでいいんですが(-_-;)

rmコマンドで mysql.sock ファイル 削除後に「sudo service mysqld start 」実行した所ステータスが「FAILED」から「OK」に!!
うぅううううおおおおけぇぇぇぇええええ!



【MYSQLに接続】

パスワードは設定してないのでENTERでMYSQLに接続完了!!
お疲れ様でした。

まとめ

次ソケットエラーになっても速攻解決してやんよ

いかがだったでしょうか?

軽く検索しただけでも結構ネットに情報があったので多くの方が不意に襲われているこのソケットエラー。

  • (2)はないから指定の場所にファイルを作れ、バカちんが
  • (13)は開く権限がないよ、バカちんが
  • このファイルは疑わしいから手動で削除してね、そしたら働くから

今回遭遇したのは主に上記の3つでした。サーバーサイドは面白いのですが、こういった普段触ることのないようなファイルでエラー遭遇することが日常茶飯事なのでもっと知識を増やしてすぐ対処できるようになりたいものです。