Centos7でMysqlの起動にハマった話

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

AWSがコスト高く感じているので国産クラウドサービスを使っているんですが、久しぶりにサーバー追加しようと思ったら、CentOS6が廃止されてCentOS7になっていました。
 

他にもUbuntuという選択肢もあったんですが、ここは比較的サポート期間の長いCentOS7を選択しておくことにした。
 

そして、この選択がこの後3時間ほどハマってしまうインストール地獄の始まりでした・・・と言っても大したことは無いので、CentOS7でMysql起動時にどうしてもエラーが出てしまう人は参考にしてもらえるといいかと思います。

クラウドサーバーのOSには、不要な物がてんこ盛り

国産クラウドサービスでサーバーを初期セットし直後に立ち上げると、wordpressモジュールが入っているものもあるが、基本的にlamp環境を事前にインストールしてくれているんだと思う。
 

もちろん、こうしたいらないモジュールは削除するに限るんですが、個人的にはOSを一からインストールしたほうがよほど効率がいいんです。
 

でも今回は、他の会社さんのWEBページ制作案件なので、そうしたLAMP環境を使って行わせていただこうと思って、結局のところ、Apacheを決してNginxを入れたり、PHPもfpmバージョンを入れたり、OS内部ではいらないfirewallを外したり、やはり一からインストールと変わらない手順でした。
 

そして一番ハマったのがMysqlで、起動エラーが出てどうしょうもなかったんですよね。
※インストール手順は省きます。他サイトを参照してください。ググればすぐに出ます。
 

 

起動コマンドを叩くと、上記のようなエラーが出るんですね。
 

この詳細を確認するには、”/var/log/mysql.log”に[error]が書かれているとのことだったので見てみると、確かにエラーが大量に吐かれている。
 

 

実際のエラー内容は上記のような感じですが、テンポラリファイルが邪魔だから消せ!ということだと理解して、”/var/lib/mysql/”以下にある、下記のファイルを削除してみた。
 

 

でも、なんどやっても、同じエラー出まくりです・・・・orz

不意に解決する惨めさ・・・

テンポラリーファイルを削除として「ibtmp1」というファイル名が記されていたので、ひたすらそれを削除しては起動してエラーが出るという作業を繰り返していたのですが、
 

もともと、mysqlの前にmariadbがインストールされていた事を思い出した。
 

mariadbとはmysqlを継承するモジュールで、どうやら、デフォルトでは同じデータを参照するような構造なので、/var/lib/mysqlは、mariadbで使われていたという事が判明しました。
 

と言うことは、このディレクトリこそがテンポラリなんだという事に気がつき、以下のコマンドを実行
 

 

そして、サイドmysqlをインストール(一度removeしてから・・・)したところ、
問題なく起動成功!!!\(^o^)/
 

テンポラリというからファイルだと思い込んでいた自分がすごく恥ずかしかったです。
 

こんな姿を後輩なんぞに見られたら、メチャクチャディスられる事間違いなしですな。
 

こういう作業はこっそりやるに限る!
そして、人が困っていたら、サクッと助言してあげてヒーローになる・・・素敵に見えるオレ・・・

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です