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
답변
이 오류는 잘못 종료 된 후 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
답변
내 오류 파일은 다른 프로세스에서 포트를 사용하고 있다고 말했지만 단순히 실행 sudo mysql.server start
하면 문제가 해결되었습니다.
