【MariaDB】Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)【CentOS7.2】

282, 2020-01-28

目次

エラー発生

CentOS7.2MariaDBをインストールしました。

# yum install mariadb mariadb-server

その後、mysqlコマンドでDBサーバーにログインしようとしたところ、↓のようなエラーが出ました。

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

ソケットが無いんだなーと思い安易にtouchでソケットを作成し、ユーザーとグループをmysqlに変更しましたが……

# touch /var/lib/mysql/mysql.sock
# chown mysql:mysql /var/lib/mysql/mysql.sock

再びmysqlコマンドを実行したところ↓のようなエラーに。

# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

末尾のエラー番号が2から111に変わっています。

エラーが進化した。これは死亡フラグ

解決

systemctl status mariadb.serviceMariaDBのステータスを確認。

# systemctl status mariadb.service
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2020-01-28 12:03:39 UTC; 12s ago
  Process: 1861 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=1/FAILURE)

Jan 28 12:03:39 localhost.localdomain systemd[1]: Starting MariaDB database server...
Jan 28 12:03:39 localhost.localdomain mariadb-prepare-db-dir[1861]: Database MariaDB is not initialized, but the d...ne.
Jan 28 12:03:39 localhost.localdomain systemd[1]: mariadb.service: control process exited, code=exited status=1
Jan 28 12:03:39 localhost.localdomain systemd[1]: Failed to start MariaDB database server.
Jan 28 12:03:39 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
Jan 28 12:03:39 localhost.localdomain systemd[1]: mariadb.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

起動に失敗してるのがわかりますが、なぜ失敗してるかはわからず。
次にsystemctl start mariadbを実行してみました。

# systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

journalctl -xeを実行て確認しろと書いてあるので実行してみることに。

# journalctl -xe
...
Jan 28 12:03:39 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
Jan 28 12:03:39 localhost.localdomain systemd[1]: mariadb.service failed.
Jan 28 12:03:39 localhost.localdomain polkitd[25035]: Unregistered Authentication Agent for unix-process:1855:199797 (sy
Jan 28 12:05:53 localhost.localdomain polkitd[25035]: Registered Authentication Agent for unix-process:1906:213253 (syst
Jan 28 12:05:53 localhost.localdomain systemd[1]: Starting MariaDB database server...
-- Subject: Unit mariadb.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mariadb.service has begun starting up.
Jan 28 12:05:54 localhost.localdomain mariadb-prepare-db-dir[1912]: Database MariaDB is not initialized, but the directo
Jan 28 12:05:54 localhost.localdomain mariadb-prepare-db-dir[1912]: Make sure the /var/lib/mysql is empty before running
Jan 28 12:05:54 localhost.localdomain systemd[1]: mariadb.service: control process exited, code=exited status=1
Jan 28 12:05:54 localhost.localdomain systemd[1]: Failed to start MariaDB database server.
-- Subject: Unit mariadb.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mariadb.service has failed.
--
-- The result is failed.
Jan 28 12:05:54 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
Jan 28 12:05:54 localhost.localdomain systemd[1]: mariadb.service failed.
Jan 28 12:05:54 localhost.localdomain polkitd[25035]: Unregistered Authentication Agent for unix-process:1906:213253 (sy

ずらずらぁ~っとエラーが書いてありますが、Make sure the /var/lib/mysql is empty before running(実行する前に/ var / lib / mysqlが空であることを確認してください)というエラー内容に着目し、一度作成したソケット削除することに。

# rm /var/lib/mysql/mysql.sock

その後、systemctl start mariadbを実行すると無事に起動しました。

# systemctl start mariadb

エラー原因

今回のエラーは、エラーというか、MariaDBをちゃんと操作しなかったことに起因するエラーでした。
OSにインストール直後のMariaDBは起動していません。そのためmysqlを実行してもエラーになります。エラー内容は例のソケットのエラーです。
最初にsystemctl start mariadbを実行してからmysqlコマンドを実行していればこのようなエラーにはならなかったはずです。

  • MariaDBを起動せずにmysqlを実行
  • ソケットのエラー発生
  • ソケットを手動で作成
  • ソケットのエラーをググるが解決せず
  • ソケットを手動で削除
  • MariaDBを起動
  • 正常にmysqlを実行できた

↑こんな感じのどたばただったわけですね。

凡ミス!

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク