[mysql] 소켓 홈브류를 통해 로컬 MySQL 서버에 연결할 수 없습니다.

최근에 homebrew ( brew install mysql)를 사용 하여 MySQL을 설치하려고 시도했는데 실행하려고하면 다음 오류가 발생합니다.

오류 2002 (HY000) : ‘/tmp/mysql.sock’소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).

더 없다 /tmp/mysql.sock도 아니다 /var/lib/mysql.sock.

검색했지만 mysql.sock파일을 찾지 못했습니다 .

이 문제를 어떻게 해결할 수 있습니까?



답변

다음을 통해 서버를 실행했을 때

mysql.server start

/tmp/mysql.sock에 소켓이 표시되어야합니다 . 그러나 시스템은 /var/mysql/mysql.sock 에서 예상하는 것 같습니다 . 이 문제를 해결하려면 / var / mysql에 심볼릭 링크를 생성해야합니다 .

sudo mkdir /var/mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

이것은 나를 위해 그것을 해결했습니다. 이제 내 phpMyAdmin이 localhost 127.0.0.1에서 행복하게 작동 합니다. .

신용은 헨리 에게 간다


답변

mysql 서버가 시작되지 않은 것 같습니다. 일반적으로 중지 명령을 실행 한 다음 다시 시작합니다.

mysqld stop
mysql.server start

같은 오류이며 이것은 나를 위해 작동합니다.


답변

다른 mysql (8.0) 설치에서 제거되지 않은 일부 디렉토리가 남아 있습니다.

다음을 수행하여이 문제를 해결했습니다.

먼저 mysql 제거

brew uninstall mysql@5.6

제거되지 않은 폴더 / 파일 삭제

rm -rf /usr/local/var/mysql
rm /usr/local/etc/my.cnf

mysql을 다시 설치하고 연결하십시오.

brew install mysql@5.6
brew link --force mysql@5.6

서비스 활성화 및 시작

brew services start mysql@5.6


답변

“localhost”대신 “127.0.0.1”을 사용하여 연결해보십시오.


답변

1) 아래 명령을 실행할 때 “mysql 중지됨”이 표시되는 경우;

brew services list

2) 아래 명령으로 mysql을 시작할 수 있다면;

mysql server start

이것은 의미합니다; mysql은 수동으로 시작할 수 있지만 운영 체제가 시작될 때 자동으로 시작되지 않습니다. 서비스에 mysql을 추가하면이 문제가 해결됩니다. 이를 위해 아래 명령을 실행할 수 있습니다.

brew services start mysql

그런 다음 운영 체제를 다시 시작하고 mysql에 연결하여 자동으로 시작되는지 확인할 수 있습니다. 나는 똑같이했고 아래 오류 수신을 중단했습니다.

오류 2002 (HY000) : ‘/tmp/mysql.sock’소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).

이게 도움이 되길 바란다.


답변

파일 /tmp/mysql.sock은 임시 폴더에 있기 때문에 아마도 Named-Pipe 일 것입니다. 명명 된 파이프는 영구적으로 저장되지 않는 특수 파일입니다.

두 개의 프로그램을 만들고 한 프로그램이 다른 프로그램에 메시지를 보내도록하려면 텍스트 파일을 만들 수 있습니다. 한 프로그램은 텍스트 파일에 무언가를 쓰고 다른 프로그램은 다른 프로그램이 쓴 것을 읽습니다. 이것이 바로 파이프입니다. 단, 컴퓨터 하드 디스크에 파일을 쓰지 않고 IE는 파일을 영구적으로 저장하지 않습니다 (파일을 만들고 저장할 때처럼).

소켓은 파이프와 똑같습니다. 차이점은 소켓은 일반적으로 네트워크를 통해 컴퓨터간에 사용된다는 것입니다. 소켓은 정보를 다른 컴퓨터로 보내거나 다른 컴퓨터에서 정보를받습니다. 파이프와 소켓은 모두 임시 파일을 사용하여 ‘통신’할 수 있도록 공유합니다.

이 경우 MySql이 어떤 것을 사용하고 있는지 식별하기가 어렵습니다. 그래도 중요하지 않습니다.

명령 mysql.server start은 해당 특수 파일을 생성하고 변경을 기다릴 ( listen쓰기를 위해) 무한 루프를 실행하는 ‘서버'(프로그램) 를 가져와야합니다.

그 후, 일반적인 문제는 MySql 프로그램에 컴퓨터에 파일을 생성 할 권한이 없기 때문에 루트 권한을 부여해야 할 수 있습니다.

sudo mysql.server start


답변

macos mojave를 설치 한 후 mysql 폴더를 지우고 그렇지 않으면 권한 관련 사항을 /usr/local/var/mysql통해 다시 설치 brew install mysql해야했습니다.