概要
稼働していたMySQLに突然ログインできなくなり、MySQLサーバーも起動できない状態となった。
これに関しては様々な対応策がネット上にあり、症状によって効くものと効かないものがあるようだ。
今回は、単にMySQLを消してインストールし直したところ元に戻った。
環境
仮想環境:Vagrant + VirtualBox
OS:bento/freebsd-11.2
MySQL:5.7をpkgでインストール
症状
VagrantのFreeBSD仮想環境にMySQLをインストールして動作していたのに、翌日ログインしようとしたらエラーになった。
1 2 3 |
$ mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) |
導入時にも遭遇した現象で、MySQLサーバーが起動していない。
1 2 |
$ sudo /usr/local/etc/rc.d/mysql-server status mysql is not running. |
サーバーを起動しようとするとPIDファイルの更新ができないというエラーで起動できない。これはネット上でも頻出の現象だ。
1 2 |
$ sudo /usr/local/share/mysql/mysql.server start Starting MySQL... ERROR! The server quit without updating PID file (/var/db/mysql/.pid). |
対応~解決せず
pidファイルが消える
sudo touch
で.pid
ファイルをつくってみたが、MySQLサーバーを起動すると同じエラーとなった。起動後に確認すると、つくった.pid
ファイルがなくなっていた。
プロセスはない
mysql関係のプロセスを見てみたが、実行したgrep以外には動いていない。
1 2 |
$ ps aux | grep mysql vagrant 4949 0.0 0.3 11872 2896 0 R+ 09:57 0:00.00 grep mysql |
pkg clean
/var/chache/pkg下の40ほどのtxzファイルが消されたが、PIDファイルが更新できない、というエラーは変わらない。
対応~解決
MySQLサーバーをアンインストールして、my.cnfを消す。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ sudo pkg delete mysql57-server Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 1 packages (of 0 packages in the universe): Installed packages to be REMOVED: mysql57-server: 5.7.33 Number of packages to be removed: 1 The operation will free 138 MiB. Proceed with deinstalling packages? [y/N]: y [1/1] Deinstalling mysql57-server-5.7.33... [1/1] Deleting files for mysql57-server-5.7.33: 100% ==> You should manually remove the "mysql" user. ==> You should manually remove the "mysql" group You may need to manually remove /usr/local/etc/mysql/my.cnf if it is no longer needed. $ sudo rm /usr/local/etc/mysql/my.cnf |
VagrantをリロードしてMySQLサーバーを再インストール。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
$ sudo pkg install mysql57-server Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 1 package(s) will be affected (of 0 checked): New packages to be INSTALLED: mysql57-server: 5.7.33 Number of packages to be installed: 1 The process will require 138 MiB more space. 14 MiB to be downloaded. Proceed with this action? [y/N]: y [1/1] Fetching mysql57-server-5.7.33.txz: 100% 14 MiB 3.6MB/s 00:04 Checking integrity... done (0 conflicting) [1/1] Installing mysql57-server-5.7.33... ===> Creating groups. Using existing group 'mysql'. ===> Creating users Using existing user 'mysql'. ===> Creating homedir(s) [1/1] Extracting mysql57-server-5.7.33: 100% ===== Message from mysql57-server-5.7.33: -- Initial password for first time use of MySQL is saved in $HOME/.mysql_secret ie. when you want to use "mysql -u root -p" first you should see password in /root/.mysql_secret MySQL57 has a default /usr/local/etc/mysql/my.cnf, remember to replace it wit your own or set `mysql_optfile="$YOUR_CNF_FILE` in rc.conf. |
この段階ではMySQLサーバーは動いていないが、無事起動に成功。
1 2 3 4 5 6 7 8 9 10 |
$ /usr/local/etc/rc.d/mysql-server status mysql is not running. $ sudo /usr/local/etc/rc.d/mysql-server start Starting mysql. $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.33-log Source distribution ..... |
また、
- 前に作ったデータベースは残っていた
- そのままexit→Vagrantリロードすると、サーバーが起動(profileに
mysql_enable="YES"
を記述しているため)