Brew를 통해 MySQL을 설치 한 후 오류가 발생합니다.-PID 파일을 업데이트하지 않고 서버가 종료되었습니다.


88

좋아, 나는 모든 것을 검색했고 설치, 제거, 다양한 옵션 시도에 상당한 시간을 보냈지 만 성공하지 못했습니다.

저는 Mac OS X Lion (10.7.3)을 사용 중이며 Python, MySQL을 설정하려고합니다.

HomeBrew를 통해 Python과 MySQL을 성공적으로 설치했습니다. Python은 훌륭하게 작동합니다.

MySQL 설치 후 처음 두 단계, 즉 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

편집 2012/09/18 : Kane이 지적한 대로 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-06-13

1
저도 같은 오류가 발생,하지만 난 아니오 / usr / 지방은 / var / mysql을 폴더 :( 또한 사제를 사용하고 있습니다.
나단 벼슬아치

2
올바른 솔루션에 대한 의견 brew info mysql또는 이 질문 을 참조하십시오
Kane

4
sudo chmod ugo + w / tmp가 내 솔루션이었습니다.
Ben Racicot 2015 년

2
내 문제는 sudo chown -R {my_user_name} : admin / usr / local / var / mysql55 /로 해결되었습니다.
Packet Tracer

101

mysql폴더 의 권한 문제라는 것을 알았습니다 .

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

나를 위해 해결했습니다.


18
이 777 수 있도록 할 필요가 없습니다
JamesHalsall

2
나는 또한 오랫동안 찾고 있었고 이것이 나를 위해 그것을 고쳤습니다.
물린

6
프로덕션 환경에서는 아무것도 777로 설정하지 않는 것이 좋습니다. 이것은 로컬 설치에만 필요합니다. 또한 최소한 755로 다시 전환합니다.
mikoop

1
mysql start에 오류가 표시되는 경우 경고 : World-writable 구성 파일 '/var/lib/mysql/none-dev/my.cnf'는 무시됩니다. 그러면 chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
내 문제는 sudo chown -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

이것은 내가 찾은 유일한 해결책입니다. 1 위 여야합니다
Dan

고마워, 이것이 나를 위해 일한 유일한 것입니다. 달리지 않아도되었지만mysqld --initialize --explicit_defaults_for_timestamp
Deep

1
MySQL 시작 중 ... 오류! PID 파일 (<path>-. lightspeed.irvnca.sbcglobal.net.pid)을 업데이트하지 않고 서버가 종료됩니다. 이 오류 받기
Unnikrishnan

1
그냥 홈브류 문제
McGrady

31

Mac 10.10.5 Yosemite에서이 문제가 발생했습니다.

이 문제를 해결하기 위해 내가 한 일

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


건배! 이 방법은 가장 간단하고 내 하루를 구했습니다!
iplus26

), 완벽한, 당신은 내 일 저장
Emy 통계

한숨. 인터넷에서 모든 솔루션을 2 시간 동안 시험 해본 후 이것이 마침내 해결되었습니다! 좋은 오래된 재시작! :)
SexyBeast

18

2014 년 11 월 : Mac OS X Mavericks 또는 Yosemite의 MySQL 5.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) mysql datadir의 모든 파일에 대한 권한을 설정합니다. 이들은 모두 [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.server bash 도우미를 사용하기 전에이 작업을 수행하여 종료해야 할 수 있습니다. 데이터를 손상시킬 수 있으므로 -9 [PID]를 죽이려는 충동을 억제하십시오.

mysqladmin -uroot shutdown

행운을 빕니다!


감사합니다-내 문제는 sudo chown -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 dir의 777로 모드를 변경 한 후)
Ratha

이는 읽기 쓰기 실행 또는 해당 폴더 및 해당 폴더 아래의 모든 파일 및 폴더에 대한 모든 사용자에 대한 전체 권한을 의미합니다. 자세한 설명은 다음 링크에서 봐 주시기 바랍니다 : linux.com/learn/understanding-linux-file-permissions을
크레 Plese에게


3

올바르게 기억하면 권한 문제입니다. pid 파일이나 파일이있는 폴더를 '터치'하고 'chmod'해보십시오.


아니. 나는 chmod 777을 시도하여 문제가 해결되는지 확인했지만 아무것도 해결하지 못했습니다. 같은 오류입니다.
Brajeshwar

mysql 디렉토리를 chmod 777하고 pid 파일을 삭제하고 MySQL을 다시 시작하려고 했습니까?
LonnyLot 2012 년

3

내 문제는 서버를 sudo로 한 번 시작한 다음 로컬 사용자로 다시 시작하려고한다는 것입니다.

여기서 mysql은 루트가 소유 한 '.err'파일에 쓸 수 없습니다. 해당 파일을 제거하고 서버를 다시 시작해야했습니다.

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

2

Mac에서 MySQL과 비슷한 문제가 있습니다 (Mac Os X에서 MySQL 서버를 시작할 수 없습니다. 이유 : 255 및 "오류! PID 파일을 업데이트하지 않고 서버가 종료되었습니다"). : 긴 시행 착오 과정 후, 마지막으로 파일 권한을 복원하기 위해, 난 그냥 그렇게했습니다

출시 디스크 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. 그런 다음 한 디렉토리로 돌아가십시오.
  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

죽이기 -9 PID

여기서 PID는 두 번째 열 값입니다. 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

핵심 사항은 .err 파일을 확인하는 것입니다 /usr/local/var/mysql. Mac OSX에서는 기본적으로 .

그 로그 파일은 다음 파일을 삭제해야한다는 것을 나에게 보여주었습니다.

ibdata1
ib_logfile0
ib_logfile1

mysql.start그 후 성공적으로 MySQL을 실행 했습니다. 해당 파일을 삭제하면 데이터가 손실 될 수 있습니다.


0
sudo chmod -R 777 /usr/local/var/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 El Capitan의 솔루션은 다음과 같습니다.

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.server start 명령이 성공적으로 작동합니다.


이것은 나를 위해 일했습니다. 다른 작업을하기 전에 이것을 시도하십시오.
kamlesh

0

대답 중 어느 것도 나를 위해 일하지 않았습니다. 그러나 나는 단순히했고 sudo mysql.server start잘 작동했습니다.

또한 나를 위해 * .err 파일에 권한 문제가 표시되지 않았습니다.


0

Linux에서이 문제가 발생했지만 원인은 모든 mysql 설치와 관련이 있습니다. 제 경우에는 시작이 완료되고 pid 파일이 업데이트되기 전에 서버가 충돌했습니다. "service mysql start"대신 mysqld를 직접 시작할 때 오류 메시지가 표시되었습니다.

제 경우 원인은 로그 파일이있는 파티션이 가득 찼기 때문입니다. 로그 파일을 제거하면 mysql이 다시 시작됩니다. 이 문제를 테스트하려면 mysql 활동 로그 위치로 이동하여 df ..


0

mysql 설치를 8.x로 업그레이드 한 경우 이전 버전이 업그레이드를 지원하는지 확인하십시오 .

그렇지 않으면 mysql이 작동하지 않습니다! 모든 구성 파일과 함께 mysql을 /usr/local/var/mysql제거하십시오 (전체 폴더 제거). mysql을 다시 설치하십시오.

참고 : 재설치하면 데이터가 손실 될 수 있습니다.


0

위의 모든 솔루션이 나를 위해 작동하지 않습니다. 그러나 그들은이 오류를 고칠 수있는 단서를 제공합니다.

mysql.server start ---- error PID 파일을 업데이트하지 않고 서버가 종료 됨

homebrew를 사용하여 macbook mojave에 mysql@5.7을 설치했습니다.

양조 설치 mysql@5.7

/usr/local/var/mysql/IU.lan.err에있는 mysql 오류 로그, 한 줄이 있습니다 : 권한 테이블을 열고 잠글 수 없음 : 테이블 'mysql.user'가 존재하지 않습니다.

goole 검색 엔진에서 많은 게시물을 시도한 후이 게시물에서 영감을 얻은 baidu https://blog.csdn.net/xhool/article/details/52398042 로 전환 하여 해결책을 찾았습니다.

rm / usr / local / var / mysql / *

mysqld-초기화

루트 사용자의 임의 암호가 bash에 표시됩니다. 하지만 mysql -uroot -p [theRandomPassword] 명령은 작동하지 않으므로 비밀번호를 재설정해야합니다. 다음과 같은 내용으로 초기화 파일을 만듭니다.

'root'@ 'localhost'= PASSWORD ( 'MyNewPass');에 대한 암호 설정

찾기 쉬운 디렉토리 (예 : 데스크탑)에 배치하십시오.

mysqld --init-file = [YourInitFile] &

화면에 많은 로그가 인쇄됩니다.

mysql -uroot -pMyNewPass

높은 버전의 mysql을 즐기십시오!


0

실제로 MariaDB에서 Mysql로 ​​전환했기 때문에 저에게 일어났습니다. MariaDB로 다시 전환하면이 문제가 해결되었습니다.

기존 데이터베이스가 호환되지 않는 것 같습니다.


이것은 또한 내 문제였으며 MariaDB에서 MySQL로 전환했습니다. 그러나 MariaDB로 다시 전환하는 것은 허용 가능한 솔루션이 아닙니다. 새 mysql brew 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 Matteo Alessani 덕분 에이 문제를 해결했습니다.


0

이 오류는 mysql이 이미 시작 되었기 때문에 실제로 표시 될 수 있습니다. 다음 방법으로 현재 상태를 확인하십시오.

mysql.server status

나는 항상 로그 파일 삭제를 해결했지만 ps실제로는 mysql 프로세스를 보여주었습니다. 나는 모든 것을 다시 죽였고 mysql.server restart작동했습니다!
EAT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.