MySQLをBrew経由でインストールした後、エラーが発生します-サーバーはPIDファイルを更新せずに終了します


88

わかりました。私はあちこちを検索し、インストール、アンインストール、さまざまなオプションの試行にかなりの時間を費やしましたが、成功しませんでした。

私はMacOS X Lion(10.7.3)を使用していて、Python、MySQLをセットアップしようとしています。

HomeBrew経由でPythonとMySQLを正常にインストールしました。Pythonはうまく機能します。

MySQLのインストール後、最初の2つの手順(unsetとmysql_install_dbコマンド)に従いました。

さて、mysql "mysql.server start"を起動しようとすると、次のエラーが発生します

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar 私のマシン上の私のユーザー名です。

回答:


80

EDIT 2012年9月18日: としては、ケインの指摘は、確認してmysql何かを行う前に、データベースが適切に設定されています。「mysql.server起動時のPIDエラー?」を参照してください詳細については、」を参照してください。

歴史のために残された元の答え: それおそらく許可の問題です。チェックしてください/usr/local/var/mysql/*.err。私は言った:

120314 16:30:14  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 ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

私もこれをしなければなりませんでした:

sudo chown _mysql /usr/local/var/mysql/*

65
実行中の問題を解決しました:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Matteo Alessani 2012年

1
私は同じエラーを取得しますが、私は持っていないは/ usr / localの/ var / mysqlのフォルダ:(私も自作を使用しています。
ネイサンBashaw

2
正しい解決策については、コメントbrew info mysqlまたはこの質問を参照してください
Kane

4
sudo chmod ugo + w / tmpが私の解決策でした。
ベンラシコット2015

2
私はsudochown -R {my_user_name}:admin / usr / local / var / mysql55 /
Packet Tracer

101

mysqlフォルダの権限の問題であることがわかりました。

chmod -R 777 /usr/local/var/mysql/ 

私のためにそれを解決しました。


18
これを777にする必要はありません
JamesHalsall 2015年

2
私も長い間探していました、そしてこれは私のためにそれを修正したものです。
2015

6
実稼働環境では、777に設定することはお勧めしません。これはローカルインストールでのみ必要です。また、最低でも755に戻します。
mikoop 2015

1
mysql startでエラーが表示された場合警告:ワールド書き込み可能な構成ファイル '/var/lib/mysql/none-dev/my.cnf'は無視されます次に、/ var / lib / mysql / none-をchmodする必要があります。 dev / my.cnf
David Mann

1
私はsudochown -R {my_user_name}:admin / usr / local / var / mysql55 /
Packet Tracer

65

mysqlを完全に再インストールすることになり、ついにうまくいきました。

警告これによりすべてのデータベースが削除されるため、最初にダンプを保存してください。

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!

3
あらゆる方法で権限を変更しようとしましたが、成功しませんでした。これらの指示に従うことになり、...成功:)
kartsims 2016

これは私が見つけた唯一の解決策です。これはナンバーワンになるはずです
ダン

おかげで、これは私のために働いた唯一のものです。私は走る必要はありませんでしたがmysqld --initialize --explicit_defaults_for_timestamp
ディープ

1
MySQLを起動しています...エラー!サーバーは、PIDファイル(<path>-。lightspeed.irvnca.sbcglobal.net.pid)を更新せずに終了します。このエラーを取得する
Unnikrishnan

1
ただ、自作問題
マグレディ

31

Mac 10.10.5Yosemiteでこの問題が発生しました

これを解決するために私がしたこと

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start


乾杯!この方法は最も簡単で、私の一日を救いました!
iplus26 2016

完璧です、あなたは私の日を救いました;)
Emy Stats 2017年

はぁ。インターネット上のすべてのソリューションを2時間試した後、これが最終的に修正されました。古き良き再起動!:)
SexyBeast 2018年

18

2014年11月:Mac OS XMavericksまたはYosemiteのMySQL5.6.xでこのエラーが発生し、ローカルでPHPでMySQLを使用したい場合(/tmp/mysql.sockはPHP PDOがsockファイルを見つけることを期待する場所です)、これが私のためにそれを修正したものです:

1)デフォルトのhomebrew設定ファイル行のコメントを解除し、以下のように編集します

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAMEは、ネットワーク上のコンピューターの一意のIDとして[システム設定]-> [ネットワーク]にあるものです。

2)mysqldatadir内のすべてのファイルに権限を設定します。これらはすべて[my_username]が所有していました。MySQLはこれについて非常に慎重であり、(ユーザー_mysql)がディレクトリを所有していない限り、pidファイルの作成を拒否します。

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

3)bashヘルパー/ラッパースクリプトを使用してMySQLを起動します。

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

お役に立てば幸いです。上記がうまくいかない場合は、Cellar / mysql / VERSION_ / bin /ディレクトリでmysqld_safeバイナリを手動で実行し、設定が何であるかを確認してください(実行されている場合)

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

それが実行された場合、あなたはすることができます

ps aux | grep mysql 

のようなものを見てください

[username]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

なぜそれがうまくいったのかわかりませんが、my.cnf構成ファイルオプションをどこから取得したかがわかります。コマンドラインオプションを使用して、mysqldを手動で起動するときにトラブルシューティングを試みることもできます。

mysqld_safeを使用してMySQLサーバーを実行するためにmanageを実行する場合は、mysql.serverbashヘルパーを試す前にこれを実行してシャットダウンする必要がある場合があります。データが破損する可能性があるため、-9 [PID]を強制終了する衝動に抵抗してください。

mysqladmin -uroot shutdown

幸運を!


ありがとう-私のものはsudochown -R {my_user_name}:admin / usr / local / var / mysql55 /
Packet Tracer

18

OS X El Capitanでも同じ問題が発生しました。これを修正した、ターミナルコマンドシーケンスを次に示します。

エラーファイルを削除します(セットアップに応じてパスを変更する必要があります)

sudo rm /usr/local/mysql/data/*.err

まだ実行中のmysqlプロセスの情報を見つけて、それを強制終了します。

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

次に、MySQLを再起動します。

/usr/local/mysql/support-files/mysql.server start

10

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

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

これにより、MAC os 10.11.3の問題が解決しました(モードをmysqlディレクトリの777に変更した後)
Ratha 2016年

これは、読み取り/書き込み実行、またはそのフォルダーに対するすべてのユーザーと(-R)そのフォルダーの下のすべてのファイルとフォルダーに対する完全な権限を意味します。詳細な説明については、次のリンクをご覧ください:linux.com/learn/understanding-linux-file-permissions
Kresimir pleseは

4

これは10.12.2で私のために働いた:

$ rm /usr/local/var/mysql/*.err

その後

$ brew services restart mysql

3

私が正しく覚えていれば、それは許可の問題です。pidファイルまたはファイルが保持されているフォルダを「touch」および「chmod」してみてください。


いいえ。chmod 777を試して、問題が解決するかどうかを確認しましたが、何も解決しませんでした。同じエラー。
Brajeshwar 2012年

mysqlディレクトリをchmod777し、pidファイルを削除してMySQLを再起動しようとしましたか?
LonnyLot 2012年

3

私の問題は、サーバーをsudoとして一度起動してから、ローカルユーザーとして再起動しようとしたことでした。

ここで、mysqlはrootが所有する「.err」ファイルに書き込むことができませんでした。そのファイルを削除してサーバーを再起動する必要がありました。

sudo rm /usr/local/var/mysql/*.err
mysql.server start

2

Mac上のMySQLでも同様の問題が発生します(Mac Os XはMySQLサーバーを起動できませんでした。理由:255および「エラー!サーバーはPIDファイルを更新せずに終了しました」)。長い試行錯誤のプロセスの後、最終的にファイルのアクセス許可を復元するために、私はそれを実行しました:

Disk Utilities.app
を起動し、左側のパネルでドライブを選択し、
[ディスクのアクセス許可を修復]ボタンをクリックします

これでうまくいきました 私のために。これが他の誰かを助けることができることを願っています。


1

私にとってそれは一緒に働いた:

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

1

私のために働いたのは:

  1. mysqlインストールディレクトリに移動します
  2. sudo chmod -R 777 data
  3. 次に、1つのディレクトリに戻ります
  4. cd support-files/
  5. sudo ./mysql.server start

その後、サーバーが実行を開始しました。

しかし、この方法の問題は、今すぐmysqlを起動するたびにこれを繰り返さなければならないことです。なぜ突然こんなふうに動き始めたのかわからない。


1

usr / local / var / mysql / your_computer_name.local.errファイルを見つけて、エラーに関する詳細情報を理解します

場所:/usr/local/var/mysql/your_computer_name.local.err

おそらくパーミッションに問題があります

  1. mysqlが実行されているかどうかを確認し、それを強制終了します

ps -ef | grep mysql

-9PIDを殺す

ここで、PIDは2番目の列の値2です。mysqlの所有権を確認してください。

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

if it is owned by root, change it mysql or your user name

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


1

これを試してください(OSX)

ステップ1: ps -aux | grep mysql

次に、4桁のPID番号を強制終了します

ステップ2: kill 1965

ステップ3: mysql.server start

または、これらのPID番号を見つけるのに苦労している場合は、以下でこれを試してください

もう一度ステップ1: ps -aux | grep mysql

もう一度ステップ2: killall

ステップ3をもう一度: mysql.server start


1

ログを確認してください。詳細情報が表示されます。

以下のコマンドを使用して、エラーログを追跡します

tail -100 /usr/local/var/mysql/<user_name>.local.err

私の場合、ディレクトリの1つが欠落しています。作成すると、サーバーが起動します。


1

重要なポイントは、.errファイルをチェックすることです。MacOSXではデフォルトで.errファイルがあります/usr/local/var/mysql

そのログファイルは、次のファイルを削除する必要があることを私に明らかにしました。

ibdata1
ib_logfile0
ib_logfile1

mysql.startその後、MySQLの実行は正常に機能しました。これらのファイルを削除すると、データが失われる可能性があることに注意してください。



0

私は同じ問題を抱えていました:

しかし、状況は、私が入ろうとするたびに:

/usr/local/mysql/support-files/mysql.server start

エラーに記載localhost.pidされている代わりに、という名前のファイルが作成されiMax0.local.pidます。

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

私のために働く解決策は、localhost.pidそれをコピーして名前をに変更することiMax0.local.pidでした。


0

OSX ElCapitanでの私の解決策は次のとおりです。

sudo chmod ugo+w /tmp

突然壊れました。

エラーは次のとおりです。

ERROR! The server quit without updating PID file

そしてログは示した:

Can't start server : Bind on unix socket: Permission denied

また、OSXにはmy.cnfデフォルトでファイルがなく、デフォルトでは必要ないということにも注意してください。これは私が知りませんでした。幸運を!



0

私も同様の問題を抱えていました。しかし、次のコマンドは私を救いました。

cd /usr/local/Cellar
sudo chown _mysql mysql

0

これはファイルパーミッションの問題です。ディスクのアクセス許可を確認して修復します。

Osx => Cmd + Space =>ディスクユーティリティ=>ディスクのアクセス許可を確認します。

ディスクのアクセス許可の修復後に完了したことを確認します。mysql.serverstartコマンドは正常に機能します。


これは私のために働いた。他のことをする前にこれを試してください。
kamlesh 2016年

0

答えはどれも私にはうまくいきませんでした。しかし、私は単にそうしましたsudo mysql.server start、そしてそれはうまくいきました。

また、私にとっては、*。errファイルにパーミッションの問題は表示されませんでした。


0

Linuxでこの問題が発生しましたが、原因はすべてのmysqlインストールに関連しています。私の場合、起動が完了してpidファイルが更新される前にサーバーがクラッシュしていました。「servicemysqlstart」を介してではなく、mysqldを直接起動すると、エラーメッセージが表示されました。

私の場合、原因はログファイルが配置されていたパーティションがいっぱいだったことです。ログファイルを削除すると、mysqlを再起動できました。この問題をテストするには、mysqlアクティビティログの場所に移動して、を実行しますdf .


0

mysqlインストールを8.xにアップグレードした場合は、以前のバージョンがアップグレードでサポートされているかどうかを確認してください。

そうでない場合、mysqlは機能しません!mysqlをすべての構成ファイルと一緒にアンインストールします/usr/local/var/mysql(フォルダー全体を削除します)。mysqlを再インストールします。

注:再インストールすると、データが失われる可能性があります。


0

上記のすべての解決策は私にはうまくいきません。しかし、彼らは私にこのエラーを修正するためのいくつかの手がかりを与えてくれます。

mysql.server start ---- errorサーバーはPIDファイルを更新せずに終了します

私は自作で私のmacbookmojaveにmysql@5.7をインストールしました

brew install mysql@5.7

/usr/local/var/mysql/IU.lan.errにあるmysqlエラーログに1行あります:特権テーブルを開いてロックできません:テーブル 'mysql.user'が存在しません

グーグル検索エンジンで多くの投稿を試した後、私は この投稿に触発されたbaidu https://blog.csdn.net/xhool/article/details/52398042に目を向け ました、私は解決策を見つけました:

rm / usr / local / var / mysql / *

mysqld --initialize

rootユーザーのランダムパスワードがbashに表示されます。しかし、コマンドmysql -uroot -p [theRandomPassword]は機能しません。そのため、パスワードをリセットする必要があります。このような内容のinitファイルを作成します

'root' @ 'localhost' = PASSWORD( 'MyNewPass');のパスワードを設定します。

デスクトップなど、見つけやすいディレクトリに配置します

mysqld --init-file = [YourInitFile]&

画面に多くのログが印刷されます。

mysql -uroot -pMyNewPass

ハイバージョンのmysqlをお楽しみください!


0

私は実際にMariaDBからMysqlに切り替えていたので、私に起こりました。MariaDBに戻すと、これが解決しました。

既存のデータベースには互換性がなかったと思います。


これも私の問題でした。MariaDBからMySQLに切り替えていました。しかし、MariaDBに戻すことは受け入れられる解決策ではありませんでした。新しいmysqlbrew uninstall mysql@8.0を削除してから、MariaDBによって作成された古いmysqlフォルダーsudo rm -rf /usr/local/var/mysqlを削除しました(これにより、データベースが明らかに削除されます)。その後brew install mysql@8.0mysql.server startそれは動作します。
antriver

0

sudo chown -R _mysql:_mysql /usr/local/var/mysql MatteoAlessaniのおかげでこれを解決しました


0

mysqlがすでに開始されているため、このエラーが実際に表示されている可能性があります。次の方法で現在のステータスを確認してください。

mysql.server status

私は常にログファイルを削除することでこれを解決しましたpsが、実際にはmysqlプロセスを示しました。私は再実行されたすべてを殺しましたmysql.server restart、そしてそれはうまくいきました!
EAT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.