MySQL が起動しないとき 【Linux】

programming MySQL

CentOS 8.0 で MySQL 8 にバージョンアップしたところ、“status = 1/FAILURE” 等のエラー表示が出て、MySQL が起動しない現象が生じました。
動くようになりましたので、手順をまとめておきます。

状況

CentOS 8.0 上で、MySQL 8 をインストール(アップデート)して MySQL を起動しようとしたところ、エラーが出て起動しなくなった。

環境:CentOS 8.0  (ConoHa VPS), MySQL 8

やったこと(エラー発生時)

① 下記で MySQL 8 をインストール
# dnf install @mysql
# mysql –version
→ mysql Ver 8.0.17 … で、インストール完了。問題なし。

② MySQL 8 を起動しようとしたところ、動かず。
# systemctl start mysqld (動かず)
# systemctl status mysqld (エラーが表示)
下記のようなエラーが出る。

mysqld.service: Main process exited, code=exited, status=1/FAILURE
mysqld.service: Failed with result 'exit-code'.
Failed to start MySQL 8.0 database server.

解決方法

① まず、エラーログを確認する。
# cat /var/log/mysql/mysqld.log

② ここで、以下のようなエラーが出ていたら、ポートが占有されている。
Can’t start server: Bind on TCP/IP port: …
Do you already have another mysqld server running on port: 3306 ?

③ ポートの状態を確認する。
# net stat -tamp
→ mysql の文字が出ていたら、その行の PID の欄の番号 xxxx を確認する。
④ 上記の番号を使って # kill xxxx とし、ポートを停止させる。

→ # systemctl start mysqld で起動できました!

まとめ

最新の MySQL にアップデートをしたところ、ポートが占有されてしまっていた、ということでした。
dnf コマンドで、最新 MySQL をインストール(再インストール、アップデート)するとき、自動でポートをクローズする、mysqld を停止する、等の事前の処理が入っていないかのような動きになっています。

関連記事
・ アップグレード後に 500 エラーが出たとき 【Linux】
・  “500 internal server error” が表示されたとき 【Linux】
・  “Error establishing a database connection” が表示されたとき
・ 
Web サーバのアクセスログの確認方法 【Linux】
・ PHP のバージョンアップ手順 【Linux】

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