mysqlが起動しなくなった

スポンサーリンク
スポンサーリンク

このお話はyumで最新のmysql-community-common-5.7.32を33にアップデートする際に、以前もインストール時にやったことを書き忘れていたためにうまく動かなかったよ。という自爆ネタです。
次回に活かせるように備忘録として書いておきます。

概要
そもそもの発端はcertbotが正常に更新されておらずe-mailで警告が来ていた事から始まりました。
エラー内容からするとcertbot自体のupdateが出来ていなかった事が発見され、さらにyum updateが手動だった事も判明しました。
対処するため手動でyum updateを行った所、mysql-community-commonも更新があり、同時にupdateが走った所mysqlの部分で「整理中」を表示した後2時間経っても応答がない状態が続きました。
明らかにおかしいので別スクリーンで状況を確認するとmysqlの起動が失敗していました。

やったことを振り返る
以前インストールした時も起動時に失敗していたことをログから拾い出し整理してみると、systemdの更新時に手動で書き直しをしていた事が判明しました。
mysqlはyumからインストールするためレポジトリを追加してインストールしているのですが新systemdに対応していないようなのです。(どちらが正しいのかは勉強不足なのでわかりません。)

対応策
systemd のエラー表示は以下の通りでした。

Can't open PID file /var/run/mysqld/mysqld.pid (yet?) after start: Too many levels of symbolic links

ですがファイルは存在するのです。これが最初何を意味しているのか分かりませんでした。
直訳だと「シンボリックリンクが深すぎるよ」と私は解釈しました。
/var/runはそもそも/runのシンボリックリンクに気づいたので一段だけでも無くせばいいのかな?
従って/usr/lib/systemd/system/mysqld.service
のファイルを編集してpidのパスを/var/runから/runに変更しました。
これで起動できるかテストします。

systemctl daemon-reload
systemctl restart mysqld

で起動できました。

本当はmysql自体のpid部分も書き換えるのが普通と思われますが、動いたので多分大丈夫という事で他は修正していません。
大丈夫。たぶん。きっと。
だいぶ遠回りしましたがmysqld絡みの修正でした。

コメント

タイトルとURLをコピーしました