[mysql] 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

권한에 문제가있을 수 있습니다.

  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 /


답변

의 지침을 따르셨습니까 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

참고 : 이것이 실패하면 아마도 위의 첫 두 단계를 실행하지 않았을 것입니다


답변

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


답변

이 오류는 잘못 종료 된 후 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는 프로세스에 Siganl을 전송하여 잠금중인 모든 자원을 해제하고 프로세스를 종료합니다.

  1. 이제 mysql은 문제없이 시작해야합니다. mysql.server start

답변

내 오류 파일은 다른 프로세스에서 포트를 사용하고 있다고 말했지만 단순히 실행 sudo mysql.server start하면 문제가 해결되었습니다.