質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

2回答

4271閲覧

MySQLが起動しない。 ERROR! The server quit without updating PID file

hiraimar

総合スコア15

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

1クリップ

投稿2018/02/21 13:46

Mac Sierraを使用している、コンピューター初心者です。
MySQL serverの起動中、コンピューターがフリーズしたため、強制終了して以来、MySQL serverを起動できません。
起動させようとすると、
ERROR! The server quit without updating PID file (/usr/local/var/mysql/mhmacbook-2.local.pid).
というエラーがでてしまいます。
以下のようにアンインストール、再インストールを何回か繰り返しましたが、やはり同じエラーがでてしまいます。
$ sudo rm -rf /usr/local/var/mysql
$ brew uninstall mysql
$ brew install mysql

$ sudo chown -R mysql /usr/local/var/mysql/
も試しましたが、同様のエラーがでます。

$ cat /usr/local/var/mysql/*.local.errでエラーログを見ますと、
[ERROR] Can't start server: Bind on TCP/IP port: Address already in use
[ERROR] Do you already have another mysqld server running on port: 3306 ?
[ERROR] Aborting
のようなエラーがでておりました。

$ netstat -na | grep LISTENで見ますと、
tcp46 0 0 *.3306 . LISTEN
というように、ポート3306がなにかに使われているようです。

いろいろ調べましたが、基本的知識もなく、もうどうしたらよいのかわかりません。
どなたか解決策をご教示頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiwa

2018/02/21 16:34

`sudo lsof -i :3306` で何が使っているのか見てみては。mysqld が起動したままになってるのでは?という気がしますが。
hiraimar

2018/02/21 21:04 編集

ご教示有り難うございます!  ご指摘のとおり、 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 41355 _mysql 28u IPv6 0xa0c8cb031b04e4b9 0t0 TCP *:mysql (LISTEN) とでてきて、mysqldが起動したままになっていました! そこで、$ mysql.server stop としたところ、ERROR! MySQL server PID file could not be found! となってしまうので、$ sudo kill -TERM 41355としました。ところが、$ mysql.server start とやると、やはり同様の ... ERROR! The server quit without updating PID file (/usr/local/var/mysql/mhmacbook-2.local.pid).がでてしまいます。そこで、もう一度、ご教示頂いた$sudo lsof -i :3306 とやると、COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 41906 _mysql 29u IPv6 0xa0c8cb031b04df79 0t0 TCP *:mysql (LISTEN) となります。 mysqldはどのように停止させることができるのでしょうか? ご教示頂ければ幸いです!
hiraimar

2018/02/22 05:14

$ ps ax | grep mysql で見ますと、41906 ?? Ss 0:06.32 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so 45458 s000 S+ 0:00.00 grep mysql とでてきて、$ sudo kill -TERM 41906と$ sudo kill -TERM 42801としたのですが、もう一度、$ ps ax | grep mysqlで確認すると、45466 ?? Ss 0:00.35 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so 45483 s000 R+ 0:00.00 grep mysql となって、別のPIDがそれぞれassignされてしまって、停止することができないです。困りました。
yo4da

2018/02/22 07:11

macを再起動すればmysqlのプロセスも停止すると思いますよ。
guest

回答2

0

ベストアンサー

追記されたps ax | grep mysqlの結果を見ると、mysqld のパスが/usr/local/mysql/bin/mysqldとなっていますが、これは homebrew からインストールされたものではないはずです。homebrew からインストールした場合だと/usr/local/Cellar/mysql/5.7.21/bin/mysqldのようになっているはずなので、これはおかしいです。つまり/usr/local内に mysql が2系統インストールされていて、使われているのは/usr/local/mysql/bin/mysqldの方になっているようです。

したがって、まず起動している方の mysql のエラーログを確認して下さい。エラーログのパスは上の出力にあるとおり/usr/local/mysql/data/mysqld.local.errです。pidのほうは/usr/local/mysql/data/mysqld.local.pidとあります。あとはエラーの内容を見て、これまで調べた内容と同じように対処できないか試してみて下さい。

投稿2018/02/22 06:36

fiwa

総合スコア1192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiraimar

2018/02/22 07:00 編集

なるほど。ものすごく勉強になります。訳がわかっていないため、確かにインストールがメチャクチャになっていました。 ところで、大変初歩的なこととは思うのですが、エラーログの確認の仕方がわかりません。コンソールで調べると思うのですが、上記のパスをどのように設定したらよいのかわかりません。 大変初歩的な質問で申し訳ございませんが、ご教示頂ければ幸いです。
fiwa

2018/02/22 07:07

質問文にあるのと同様に、`cat /usr/local/mysql/data/mysqld.local.err` もしくは最新の部分だけ見るなら、`tail /usr/local/mysql/data/mysqld.local.err` で見れませんか? Permissionで拒否されるなら頭にsudoをつけて `sudo cat /usr/local/mysql/data/mysqld.local.err`のようにしてpasswordを訊かれたらMacの管理パスワードを入れて下さい。
hiraimar

2018/02/22 07:28

有り難うございます!なるほどなるほどです! でも結局エラーログの意味がよくわからず、command + G + shiftで、brewでインストールされてるとおぼしきmysqlフォルダを見つけたのでこっちをそのままにして、次に、/usr/local/mysql/bin/mysqldへ移動して、余剰と思われるmysqlフォルダをゴミ箱に入れて、再起動しました。 そうしたら、ようやくMySQL serverに入れました! 初歩的な質問にもかかわらず、懇切丁寧に教えて頂き有り難うございました!!
guest

0

強制終了したとのことで、pidファイルが中途半端な状態になってしまっていて起動出来ないのだと思います。

参考URL
MySQL起動できなくなった The server quit without updating PID file

MySQLのプロセスを殺した後に、

$ /usr/local/var/mysql/mysql > touch /usr/local/var/mysql/mhmacbook-2.local.pid


$ rm /usr/local/var/mysql/mhmacbook-2.local.pid
で治りそうな気がします。

投稿2018/02/22 01:36

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiraimar

2018/02/22 05:22

ご教示有り難うございます!この手法もトライしてみました。 $ /usr/local/var/mysql/mysql > touch /usr/local/var/mysql/mhmacbook-2.local.pid とやると、 -bash: /usr/local/var/mysql/mysql: is a directory とでてきてしまい、 $ rm /usr/local/var/mysql/mhmacbook-2.local.pid とやると、 rm: /usr/local/var/mysql/mhmacbook-2.local.pid: No such file or directory となってしまいます。 MySQLはstopさせることができていないのですが、それが問題なのでしょうか。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問