MySql 서버 시작 오류 'PID 파일을 업데이트하지 않고 서버가 종료되었습니다'
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
접미사 ".err"로 로그 파일을 찾으려면 자세한 정보가 있어야합니다. 있을 수 있습니다 :
/usr/local/var/mysql/your_computer_name.local.err
권한에 문제가있을 수 있습니다.
mysql 인스턴스가 실행 중인지 확인
ps -ef | grep mysql
그렇다면 중지하거나 프로세스를 종료해야합니다.
-9 PID 죽이기
여기서
PID
숫자는 이전 명령의 출력에 사용자 이름 옆에 표시됩니다의 소유권을 확인
/usr/local/var/mysql/
ls -laF / usr / local / var / mysql /
소유자 인 경우
root
변경mysql
하거나your_user
sudo chown -R mysql / usr / local / var / mysql /
의 지침을 따르셨습니까 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 문서를 봅니다.
- http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
- http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html
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
참고 : 이것이 실패하면 아마도 위의 첫 두 단계를 실행하지 않았을 것입니다
Mac 컴퓨터에서 동일한 문제가 발생했습니다 (에서 제안한 모든 설치 단계를 올바르게 따르십시오 brew install
).
오류 파일을 삭제하면 해결되었습니다.
sudo rm -rf /usr/local/var/mysql/dev.work.err
( dev.work
내 호스트 이름입니다)
이것은 내 사용자 이름 대신 dev.work.err
소유 했기 때문에 효과적 이었습니다 _mysql:wheel
. 오류 파일을 확인하면 아마 수정되었을 것입니다.
재부팅 한 후에도 같은 문제가있었습니다. 내가 고 쳤던 방법은 다음과 같습니다.
sudo chown -R _mysql /usr/local/var/mysql
이것은 나를 위해 일했다 ...
실행중인 모든 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
내 오류 파일은 다른 프로세스에서 포트를 사용하고 있다고 말했지만 단순히 실행 sudo mysql.server start
하면 문제가 해결되었습니다.
이 오류는 잘못 종료 된 후 msql을 시작하려고 할 때 발생할 수 있습니다.
mysql 오류 로그 파일을 살펴보십시오. 이 같은 것을 언급하는 경우 "이미 동일한 데이터를 사용하여 다른 mysqld를 프로세스를하거나 로그 파일을하지 않는 것이 확인하십시오." 그런 다음 해당 프로세스를 올바르게 종료해야합니다.
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)
- mysql을 실행하는 프로세스를 종료하십시오.
kill -15 4249
Kill -15는 프로세스에 Siganl을 전송하여 잠금중인 모든 자원을 해제하고 프로세스를 종료합니다.
- 이제 mysql은 문제없이 시작해야합니다.
mysql.server start
아무도 도움이되지 않으면 폴더를 제거한 /usr/local/var/mysql
다음 mysql을 다시 설치하십시오 brew reinstall mysql
.
최근 에이 문제가 발생했지만 이전에는 작동했지만 중지했습니다.
내가 처음에 시작하기 때문이었다 mysql.server
로 루트 대신 자신의.
수정은 오류 로그 파일 (이 소유 한 파일)을 삭제하는 것 _mysql
입니다. 다시 시작하면 통과했습니다.
제거하려고 ib_logfile0
하고 ib_logfile1
파일을 한 후 다시 MySQL의 실행
rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1
그것은 나를 위해 작동합니다.
나를 위해 일한 솔루션은 여기에 있습니다 : https://serverfault.com/questions/334284/cant-create-pid-file-on-mysql-server-permission-denied
내 권한 중 일부를 변경하면 트릭을 수행하는 것 같습니다. OS X 10.8.2로 2012 년 중순 Macbook Air를 실행하고 있으며 mybrew는 homebrew와 함께 설치되었습니다.
chmod 0755 /var
chown root:wheel /var/tmp
sudo chmod 0771 /usr/local/var/mysql/*
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
나를 위해 수정은 간단했습니다.
top
mysqld가 이미 실행 중임을 보여 주었다
sudo killall mysqld
그런 다음 프로세스가 시작되도록 허용
나를 위해 mysql을 다시 설치해야했습니다.
brew reinstall mysql
그런 다음 아래에서 mysql을 시작하고 로그인시 다시 시작하려면 :
brew services start mysql
사용하고 있습니다
- 완전히 새로운 MacBook Pro OSX 10.7.3.x
- OSX GCC 설치 프로그램을 통한 gcc
homebrew ( 'brew install mysql')를 사용하여 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 디렉토리의 최상위 레벨 (예 : usr / local / Cellar / mysql / 5.5.25)에서 mysql_install_db를 실행해야합니다. / scripts 디렉토리 내에서 직접 실행해도 컨텍스트가 충분하지 않습니다.
나를 위해 해결책은 / etc / my / cnf의 데이터 디렉토리를 재정의 / 수정하는 것이 었습니다.
readme 파일에 제공된 지침을 사용하여 소스에서 MySQL 5.5.27을 빌드했습니다.
# 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
나를 위해 일했다. 그것이 당신에게 도움이되기를 바랍니다.
MySQL 프로세스가 실행 중이므로 포트를 사용할 수 없습니다. 다음 명령을 사용하여 실행중인 MySQL 프로세스를 확인할 수 있습니다.
PS AUXF | grep mysql
MySQL 프로세스가 있으면 kill -9 PID를 사용하여 해당 프로세스 ID를 종료 한 다음 MySQL을 시작하십시오.
안전 모드에서 MySQL을 시작
/usr/local/mysql/bin/mysqld_safe start
또는
MAC 에서 활동 모니터 응용 프로그램에서 하나 mysql
이상의 mysqld
작업을 종료합니다 .
또는 오류로 확인하십시오.
tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
여기에 게시 된 몇 가지 답변을 통해 문제를 찾을 수있었습니다.
먼저 내가 달린다
sudo -i
그래서 루트 액세스 권한을 가질 수 있습니다.
xxxx.err 파일을 삭제 한 것보다
rm -rf /usr/local/mysql/data/xxxx.err
SafeMode에서 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
모든 단계를 수행하면 데이터베이스가 즉시 작동하기 시작했습니다 ...
이것이 다른 사람들을 도울 수 있기를 바랍니다 ... 열쇠는 오류를 읽고 기록하고 잘못된 것을 찾는 것입니다 ...
제 경우에는 오류 로그 파일의 액세스 문제로 인해 오류가 발생합니다.
다음 두 명령은 문제를 해결하는 데 도움이됩니다.
sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err
오류 로그는 무엇입니까? 이 오류가 발생하여 mysql 오류 로그에 표시된 my.cnf의 오래된 유효하지 않은 설정이되었습니다. 잘못된 구성 설정이 아닌 경우 오류 로그는 최소한 올바른 방향을 가리켜 야합니다.
글쎄, 나는이 시점에서 OP가 그것을 고쳤다 고 가정한다.
나는 이것이 당신을 위해 일하기를 바랍니다.
오류 로그를 확인한 후 다음을 발견했습니다.
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의 설치 버전에 따라 다릅니다.
같은 문제가 있었지만 mysqld의 이전 설치를 실행하는 동안 추출 제거를 수행하고있었습니다. brew가 제거하기 전에 서비스를 중지하지 않는 것 같습니다.
.err 파일을 확인한 후 이전 서비스를 종료 한 후 다른 mysql 사본이 실행 중일 수 있다는 기록 된 오류를 보았습니다. 그런 다음 새로운 mysql 설치를 다시 시작할 수있었습니다.
이 시도..
- 문제의 상위 디렉토리로 이동
cd YOURPATH/usr/local/mysql
rm -rf *.local.err
(파일 삭제)touch YOURUSERNAME.local.pid
(오류가 발생한 문제가 발생한 새로운 * .local.pid 파일 생성)- 다시 프로젝트로 cd하고 다음을 사용하여 mysql을 다시 시작하십시오.
mysql.server start
어떻게 든 El Capitan에 대한 권한을 망쳐 놓고 MySQL을 처음부터 다시 설치하기로 결정했습니다.
엘 캐피 탄에서 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
나는 같은 문제가 있었다. 내 /etc/my.cnf 파일을 이동하면 나를 위해 일했습니다. 여기 에 정보가 있습니다
드라이브에 여유 공간이 있는지 확인하십시오. 내 드라이브에 공간이 없으면이 문제가 발생합니다.
단순한....
2002 MySQL 소켓 오류 수정
어렴풋한 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/
문제는 권한입니다. 다른 사람이 소유하고 있기 때문에 mac.err에 쓸 수 없기 때문에 시작할 수 없습니다.
mysql을 시작할 사용자가 / usr / local / var / mysql 폴더를 소유하고 있는지 확인하십시오. 잭으로 mysql을 시작하면 모든 것이 좋습니다. 그러나 루트로 시작하면 잭이 쓸 수없는 mac.err (루트 소유) 파일이 생성되므로 잭으로 다시 시작하려고하면 실패합니다.
- mysql.server start를 실행하는 사용자가 폴더 및 파일을 소유하고 있는지 확인하십시오.
- 다른 사람이 소유 한 mac.err 또는 mac.pid가 없는지 확인하십시오.
- 시작은 올바른 사용자입니다.
제 경우에는 vPas cPanel 에서이 문제가 발생했습니다 .
위의 답변 중 대부분을 시도했지만 성공하지는 못했습니다.
- 오류 로그의 위치를 확인하십시오. 오류 줄의 끝에 언급 될 것입니다.
오류! PID 파일 (/var/lib/mysql/111318.vps-11.com.pid)을 업데이트하지 않고 서버가 종료됩니다.
- 해당 파일 (/var/lib/mysql/111318.vps-11.com.err)을 열고 하단 라인을 확인하십시오. 내 경우에는
[오류] 치명적인 오류 : 권한 테이블을 열고 잠글 수 없음 : 테이블 './mysql/db'가 충돌로 표시되어 복구되어야합니다.
- 이를 해결하는 방법 : 명령으로 테이블 인덱스 복구 및 수정 :
[~] # myisamchk -r /var/lib/mysql/mysql/db.MYI
https://forums.cpanel.net/threads/mysql-is-not-running.407142/
- (다시) mysql을 시작
'Programing' 카테고리의 다른 글
바이트 배열로 Java 직렬화 가능 객체 (0) | 2020.03.27 |
---|---|
Android 알림 대화 상자에 목록보기를 표시하려면 어떻게해야합니까? (0) | 2020.03.27 |
문자열을 Date 및 DateTime으로 변환 (0) | 2020.03.27 |
Vim : 여러 줄에 같은 문자를 삽입 (0) | 2020.03.27 |
서로 다른 크기의 사각형을 가능한 가장 작은 사각형으로 압축하는 데 어떤 알고리즘을 사용할 수 있습니까? (0) | 2020.03.27 |