MySqlサーバー起動エラー「サーバーがPIDファイルを更新せずに終了しました」


284

Snow Leopardでは、MySQLを起動すると次のエラーが発生します。

PIDファイルを更新せずにサーバーが終了した

my.cnf

[mysqld]
port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

pid-file=/var/run/mysqld/mysqld.pid

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

7
管理者ユーザーとして実行しています。sudo /usr/local/mysql/support-files/mysql.server start
Chinmay

6
同じ問題。mysqlをbrewでインストール
vrybas

20
ここで同じ問題。brewもインストールされています。
jspooner

11
私のMacでもこのケースに遭遇し、 '/ usr / local / var / mysql / *。err'のようなエラーログを削除したところ、正常に起動しました。
Mathew P. Jones

3
Macでも同じエラーが発生しました。しかし、私はそれを解決しました。.dmgファイルを使用してインストールする場合は、システム設定に移動し、[mysql]アイコンをクリックして、[mysqlの開始]ボタンをクリックします。
Amaranadh Meda 2016

回答:


276

接尾辞 ".err"が付いたログファイルを検索してみてください。詳細が表示されます。それはであるかもしれません:

/usr/local/var/mysql/your_computer_name.local.err

おそらく権限に問題があります

  1. mysqlインスタンスが実行されているかどうかを確認します

    ps -ef | grep mysql

    はいの場合、それを停止するか、プロセスを強制終了する必要があります

    キル-9 PID

    ここPIDで、前のコマンドの出力でユーザー名の横に表示される番号

  2. の所有権を確認する /usr/local/var/mysql/

    ls -laF / usr / local / var / mysql /

    所有者であるroot場合は、変更するmysqlか、your_user

    sudo chown -R mysql / usr / local / var / mysql /


24
私のユーザーではなく、mysqlユーザーに寄り道する必要がありました。
Jared

3
私のために働いた。エラーファイルをチェックして、ファイルのパーミッションのためだと言った。chownコマンドを実行して動作しました。ありがとう!!
パケットトレーサー、2013

2
sudoのchownコマンド-R my_userは/ usr / localの/ var / mysqlの/少なくとも、私のために働いた
ビョルンBørresen

私自身の経験から-sudo chownを実行した後は、現在、いくつかのmysqlプロセスが別のユーザーまたはルートで実行されていないことに注意してください。ps -ef | grep mysqlは、何も実行されていないことを検証します。それ以外の場合は、起動できません。
アーサーフランケル

1
トータルライフセーバー。私の唯一の観察は、mysqlフォルダーへのファイルパスが異なる可能性があることです。
ALisboa

198

からの指示に従いましたbrew install mysqlか?

以下を使用してユーザーアカウントとして実行するようにデータベースを設定します。

mysql 5.xの場合:

unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

別のフォルダーにベーステーブルを設定するか、別のユーザーを使用してmysqldを実行するには、次のヘルプを参照してmysqld_install_dbください。

mysql_install_db --help

MySQLのドキュメントをご覧ください。

mysql 8.xの場合:

unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

/usr/local/var/mysql上記のデータディレクトリが空であることを確認し、必要に応じてバックアップしてください。

たとえば、ユーザー「mysql」として実行するには、次の操作が必要になる場合がありますsudo

sudo mysql_install_db ...options...

mysqldを手動で起動します。

mysql.server start

注:これが失敗した場合、おそらく上記の最初の2つのステップを実行するのを忘れていました。


78
出力の手順に従っても同じエラーが繰り返し発生する場合は、*。pidファイルと同じディレクトリから* .errファイルを削除します。mahdiyusuf.com/post/21022913180/...
ekillaby

6
私は何百万回もこれらの指示に従ってみましたが、うまくいきませんでした。私は、醸造医が私に警告したすべてのものを変えないように思ったので、それらをクリーンアップしないで「詐欺」しようとしました。結局、醸造医師のアドバイスをクリーンアップしてフォローすることで、上記の設定を実行することができました。だから、通り過ぎる人へのメモ。醸造医師をごまかそうとせず、あなたがもっとよく知っていると考えてください!
スパン

9
医師を醸造し、自分のユーザーに書き込み権限を追加することで問題が解決しませんでした。sudo chown -R your_user /usr/local/var/mysql/@Tombartの回答と同じように:)
GabLeRoux

1
@countfloortilesはい!エラーファイルを削除すると、それが行われました。:-)
ott-- 2015年

6
mysqld_install_dbコマンドは私にエラーを与えるmysql_install_db: [ERROR] unknown variable 'tmpdir=/tmp'
Snowcrash

125

Macマシンでも同じ問題が発生しました(で提案されているすべてのインストール手順を正しく実行しましたbrew install)。

エラーファイルを削除することで修正されました:

sudo rm -rf /usr/local/var/mysql/dev.work.errdev.work私のホスト名です)

自分のユーザー名ではなくdev.work.errが所有していたため、これは機能しました_mysql:wheel。エラーファイルを表示すると、おそらくそれも修正されます。


2
これで私の問題も解決しました。mysqlを再起動するともう機能しなくなり、同じ問題が発生しましたが、_mysql:adminが所有していたエラーログを削除すると問題が解決しました
user980085

5
これは最も役立つようで、このサービスをSUDOで開始するのではなく、自分のユーザーアカウントで実行する必要があることに気付きました。
Bnjmn 2013

3
これは、自作を使用してMySQLをインストールしている人のためのかなり良い答えです
ステファンパケ

何週間か別のことを試みた後、エラーファイルを削除すると、すべてが機能し始めました。おかげで
DF

_mysqlアカウントがそれを引き継いだため、私はそれを削除する必要はなく、自分のアカウントに戻しました。
Sammy Larbi 2014

90

再起動後、同じ問題が発生しました。修正方法は次のとおりです。

 sudo chown -R _mysql /usr/local/var/mysql

どうもありがとうございました。ただし、権限をめちゃくちゃにしている場合に備えて、バックアップを忘れないでください
m02ph3u5

ありがとう。Ubuntuのランプに問題がありました。lamppフォルダー全体を/ optから新しいサーバーにコピーしました。mysqlを起動しようとすると、次のメッセージが表示されました。サーバーがPIDファイルを更新せずに終了しました。lampp / var /に移動し、chown -R mysql mysql /を実行します。これでうまくいきました。
デイブ

6
ありがとうございます。あなたは私のヒーローです;)
Fareed Alnamrouti '12

どうもありがとう!その日を救った!
Masiar 2015年

8
エルキャピタンではこれが機能しました:sudo chown -R _mysql /usr/local/mysql/data
Justin

33

これは私のために働いた...

実行中のすべてのMySQLプロセスを確認します。

$ ps aux | grep mysql

USER     PID    %CPU  %MEM 
_mysql   5970   0.0   0.4 ...

次に、次のコマンドを使用して、上記のコマンドでリストされたすべてのプロセスを強制終了します。

$ sudo kill -9 [PID]

[PID]上記のリストの個々のPIDに置き換え5970ます。

最初のコマンドで表示されるすべての行に対してそれを行います。

次に、MySQLサーバーを再度起動します。

mysql.server start

または、pkill mysql「mysql」に一致するすべてのプロセスを強制終了するために使用します(-9ほとんどの場合不要です)。
bfontaine

特定のIDを持つすべてのプロセスを強制終了して再起動するには
Anupam Maurya

26

このエラーは、不適切にシャットダウンされた後にmsqlを起動しようとしたときに発生する可能性があります。

  1. mysqlエラーログファイルを確認します。「同じデータまたはログファイルを使用している別のmysqldプロセスがまだないことを確認してください。」のようなものが記載されている場合、そのプロセスを適切にシャットダウンする必要があります。

  2. mysqlが実行されているプロセスを確認するには、次のコマンドを使用します。 lsof -i:3306

出力は次のようになります。

COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  4249 username   17u  IPv4 0x7843d9d130469c0b      0t0  TCP localhost:mysql (LISTEN)
  1. mysqlを実行しているプロセスを終了します。 kill -15 4249

Kill -15は、プロセスにシグナルを送信して、ロックしているリソースを解放し、その後プロセスを終了します。

  1. これで、mysqlは問題なく起動するはずです。 mysql.server start

これは、ハイシエラの私にとって、価値のあることなら何でも機能します。
ジョナサンステガール

24

エラーファイルは、ポートが別のプロセスによって使用されている可能性があることも教えてくれましたが、実行するだけでsudo mysql.server start問題は解決しました。


ええ...これも私にとってはうまく
いき

MacでMySQLを起動する方法は「sudo /usr/local/mysql/support-files/mysql.server start」です。そのため、「pidファイルを更新せずにサーバーが終了しました」というエラーが発生し、このページにたどり着きました。多数の回答を試みた後、「sudo mysql.server start」を見つけ、それは機能しました。ありがとう。
rodmclaughlin

19

ファイルを削除ib_logfile0してからもう一度ib_logfile1mysqlを実行し てみてください

rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1

わたしにはできる。


1
私も.err同じディレクトリにあるファイルを削除しました。
Anthonyが

上手。これは非常にシンプルで、本当に私にとってはうまくいきます。しかし、私の場合は、名前を変更するだけですib_log*.bak
mochadwi

18

だれも助けてくれなかった場合は、フォルダ/usr/local/var/mysqlを削除してからmysqlを再インストールしてくださいbrew reinstall mysql


9
警告thatsはすべてのデータベースを消去することを意味します。
18

mysql5.7をインストールするよりも前に、より高いバージョンのmysqlをインストールすると、この問題が発生します。/ usr / local / var / mysqlを削除してbrew reinstall mysql@.57解決します。
ペガサス

/ usr / local / var / mysqlの下のdbsを最初に別のフォルダーに移動します。インストールしてmysqlサービスを正常に開始したら、必要なデータベースを元に戻します。
civic.LiLister

15

私は最近この問題に遭遇しましたが、以前は機能していたので停止しました。

私が最初に始めたので、これはだったmysql.serverとして、ルートの代わりに自分の。

修正は、が所有していたerrログファイルを削除することでした_mysql。もう一度起動すると、合格しました。


ありがとう!同じ問題を1時間検索したところ、あなたの答えが見つかりました。
FLY

11

私にとってはmysqlを再インストールする必要がありました

brew reinstall mysql

そして次に以下を起動するには、mysqlを今すぐ開始し、ログイン時に再起動します。

brew services start mysql


10

私にとっての修正は簡単でした:

top

mysqldがすでに実行されていることを示した

sudo killall mysqld 

次に、プロセスの開始を許可しました


8

MacOS X 10.7.5でアップグレードを試行しているときにこの問題が発生しました。

残念ながら、mysqlも5.5.14から5.6.10にアップグレードされました。新しいを試してみましたが、機能しませんでした。

私は以前のセットアップに戻ることに決め、

brew switch mysql 5.5.14

これは問題を解決しませんでした。他の場所で読んでこれをやった、出来上がり!すべてが戻ってきました:)

cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak

これは、最初に使用した後に機能しbrew upgrade mysqlbrew switch mysql 5.7.17それが以前のバージョンでした。おかしい!
ホルヘオルピネル

7

私は使っています、

Homebrewを使用してMySQLをインストールしました( 'brew install mysql')。いくつかの依存関係をインストールしてから、mysqlをインストールしました。

起動しようとしたら、

west$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).

私はこのコマンドを実行しました、

west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db 

とMySQLが動作します。

mysqlディレクトリの最上位レベル(IE、usr / local / Cellar / mysql / 5.5.25)からmysql_install_dbを実行する必要があることに注意してください。/ scriptsディレクトリ内で直接実行しても、実行するのに十分なコンテキストが得られません。


5.5.28で私のために働き、OSX 10.7.5で醸造した
ch3rryc0ke

7

私にとっての解決策は、/ etc / my / cnfのデータディレクトリを上書き/修正することでした。

私はソースからMySQL 5.5.27をビルドし、readmeファイルに記載されている指示に従いました。


# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions

# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data

# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &

# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

mysqld_safeは説明なしで終了しました。実行する/etc/init.d/mysql.server startとエラーが発生しました:

「サーバーはPIDファイルを更新せずに終了しました」

しかし、インストール手順に奇妙なことに気づきました。ディレクトリ「data」の所有権はmysqlに変更されましたが、「var」には変更されていません。これは珍しいことです。何年もの間、varディレクトリがmysqlで書き込み可能であることを確認する必要があったからです。そのため、私は手動で実行chown -R mysql /usr/local/mysql/varしてから、もう一度起動しようとしました。まだ運がない。しかし、さらに悪いことに、var dirには.errファイルがありません-「data」ディレクトリにありました!そのため、scripts / mysql_install_dbは/ usr / local / mysql / varにキャンプを設定しますが、アプリケーションの残りの部分は/ usr / local / mysql / dataで作業を行いたいようです!

したがって、/ etc / my.cnfを編集し、[mysqld]セクションの下に、mysqlのデータディレクトリをvarに明示的に指定するディレクティブを追加しました(通常はどのようにでもそうであると期待しているため)。そうすると、mysqldがちょうど起動します。大丈夫。追加するディレクティブは次のようになります。

datadir = / usr / local / mysql / var

私のために働いた。それがあなたのために役立つことを願っています。


5

MySQLプロセスが実行されているようです。そのため、ポートを使用できません。次のコマンドを使用して、実行中のMySQLプロセスを確認できます。

ps auxf | grep mysql

MySQLプロセスを取得した場合は、kill -9 PIDを使用してそのプロセスIDを強制終了してから、MySQLを起動してみてください。


この答えが私の救い主です。
Sangbeom Han

5

Mysqlをセーフモードで起動する

/usr/local/mysql/bin/mysqld_safe start

または

MACエンドのいずれmysqlかまたはmysqld Activity Monitorアプリケーションのタスクタスク(またはその他)を終了します。

またはエラーを確認してください

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err

4

エラーログは何と言っていますか?私はこのエラーを受け取り、それがmy.cnfの古い無効な設定になりました。これは、mysqlエラーログが示しています。悪い設定ではない場合、エラーログは少なくとも正しい方向を示しているはずです。

まあ、私はOPがこの時点でそれを修正したと思います...しかし、うまくいけば、これは他の人がこのエラーを正しい方向に見ていることを示しています。


4

ここに投稿されたいくつかの回答の助けを借りて、私は問題を見つけることができました

まず走る

sudo -i

だから私はルートアクセスを持つことができました。

xxxx.errファイルを削除したときより

rm -rf /usr/local/mysql/data/xxxx.err

MySQLをセーフモードで起動した後

/usr/local/mysql/bin/mysqld_safe start

エラーのために起動を試みて終了します...新しいxxx.errファイルが作成されます。エラーの原因を確認するには、ファイルを読み取る必要があります

tail -f /usr/local/mysql/data/mysqld.local.err

私の場合、何らかの理由で、いくつかのフォルダとフォルダ内のファイルが欠落していました/var/log/...それで、両方を作成しました

cd /var/log

mkdir mysql

touch mysql-bin.index

新しいファイルが作成された後、権限を変更する必要がある

chown -R _mysql /var/log/mysql

これらのすべての手順を実行すると、私のデータベースはすぐに動作し始めました...

これが他の人の助けになることを願っています...キーはエラーを読んでログに記録し、何が間違っているかを見つけることです...


4

私の場合、エラーはエラーログファイルのアクセス問題が原因で発生します。

次の2つのコマンドは、問題の解決に役立ちます。

sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err

3

この作業がうまくいくことを願っています。

エラーログを確認した後、私はこれを見つけました:

120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended

そしてそれを解決するために、mysqlフォルダー全体に対する所有権を与えました。

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.21-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.21-osx10.6-x86_64

次に(コマンドラインでも実行できます)、/ usr / local / mysqlにあるフォルダーの「情報を取得」メニュー内からすべての囲まれたフォルダーにアクセス許可を適用しました(所有権を_mysqlおよびmysqlユーザーに付与した後)。-5.5.21-osx10.6-x86_64。エイリアスにすぎないため、エイリアスにそれをする必要はありません。

フォルダーの名前は、使用しているmysqlのインストールバージョンによって異なります。



3

同じ問題がありましたが、私にとっては、mysqldの以前のインストールを実行しているときに、brewの削除を行っていました。アンインストールの前にbrewがサービスを停止しないようです。

.errファイルを確認した後、古いサービスを終了した後、mysqlの別のコピーが実行されている可能性があるというログに記録されたエラーを確認しました。その後、新しいmysqlのインストールを再開できました。


はい、エラーログを確認してください。私の場合、実行ls -latr /usr/local/var/mysql/してエラーログを含む最新の変更されたファイルを探し、次にtail -50 name.err構成の問題であるエラーを確認しました。
mahemoff 2013

神に感謝、あなたは正しかった。私ps aux | grep mysqldはプロセスを使用して終了しkill -9 [proccessid]、サーバーは正常に起動しました
Sagish

3

シンプル...

2002 MySQL Socketエラーを修正する

迫り来る2002ソケットエラーを修正します。これは、MySQLがソケットを配置し、OSXがそれを想定する場所をリンクします。MySQLはそれを/ tmpに置き、OSXは/ var / mysqlでそれを探します。ソケットは、mysqlクライアントを許可するファイルのタイプです/サーバー通信。

sudo mkdir / var / mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

よくやった : )

これは私をたくさん助けます!私はhttp://coolestguidesontheplanet.com/のみんなからこのガイドを受け取りました


3

これを試して..

  1. 問題の親ディレクトリに移動します cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (ファイルを削除)
  3. touch YOURUSERNAME.local.pid (スローされたエラーが不平を言っていた新しい* .local.pidファイルを生成)
  4. プロジェクトにcdして、mysqlを再起動します mysql.server start

1
これでうまくいきました。理由は、error.logファイルが "_mysql"によって所有されており、ログにエラーがスローされたためです。誰かがこの問題を抱えている場合に備えて、ログに記録したかっただけです。 150818 19:32:06 mysqld_safe Logging to '/opt/boxen/log/mysql/error.log'. 150818 19:32:06 mysqld_safe Starting mysqld daemon with databases from /opt/boxen/data/mysql /opt/boxen/homebrew/bin/mysqld_safe: line 129: /opt/boxen/log/mysql/error.log: Permission denied
ドノバン、

問題がアクセス許可に関連している場合、これは機能しません。同じmysqlエラーがスローされます。
mpoletto 2016年

私のためにも働いた。また、Apacheを再起動する必要がありました(LAMPスタックも使用している場合)。
Tommyixi

3

どういうわけか、私はEl Capitanへのアクセス権を台無しにし、MySQLを最初から再インストールすることにしました。

el capitanでbrewを使用し、再インストールすることにしました。

brew uninstall mysql
sudo rm -rf /usr/local/var/mysql
brew install mysql
mysql.server start # ... SUCCESS

新規インストールのファイル権限がから変更され_mysql、ユーザー名が含まれる

 ls -alh /usr/local/var/mysql
drwxr-xr-x   22 lfender  admin   748B Mar 22 09:58 .
# ... etc

2

ドライブに空き容量があるか確認してください。ドライブにスペースが残っていないときにこの問題が発生しました。


あなたが言及しなければ、私は宇宙問題について決して考えなかったでしょう。あなたは救い主です!
Kshitij Bajracharya

2

問題はアクセス許可の問題です。mac.errに書き込むことができないため、他のユーザーが所有しているため、起動できません。

/ usr / local / var / mysqlフォルダーは、mysqlを起動するユーザーが所有していることを確認してください。私がmysqlをジャックとして起動した場合、それはすべて良いことです。ただし、ルートとして起動すると、ジャックが書き込めないmac.err(ルートが所有)ファイルが作成されるため、ジャックとして再起動しようとすると失敗します。

  1. フォルダーとファイルがmysql.server startを実行しているユーザーによって所有されていることを確認します
  2. 他の誰かが所有しているmac.errまたはmac.pidがないことを確認します。
  3. 開始は適切なユーザーとしてです。

私はchown -R <user_name> / usr / local / var / mysqlを使用しましたが、うまくいきました。素晴らしい解決策。
mbokil

2

私の場合、vps、cPanelでこの問題が発生しました

上記の答えのほとんどを試しましたが、成功しませんでした。

  1. エラーログの場所を確認します。エラー行の最後に記載されています。

エラー!サーバーは、PIDファイル(/var/lib/mysql/111318.vps-11.com.pid)を更新せずに終了しました。

  1. そのファイル(/var/lib/mysql/111318.vps-11.com.err)を開き、lates行の下部をチェックします。私の場合、

[エラー]致命的エラー:特権テーブルを開いてロックできません:テーブル './mysql/db'はクラッシュしたとマークされているため、修復する必要があります

  1. 解決方法:コマンドによるテーブルインデックスの回復と修正:

[〜]#myisamchk -r /var/lib/mysql/mysql/db.MYI

https://forums.cpanel.net/threads/mysql-is-not-running.407142/

  1. (再)あなたのmysqlを開始する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.