방금 mysql을 다시 설치해야했는데 시작하는 데 문제가 있습니다. 소켓 (mysql.sock)을 찾을 수 없습니다. 문제는 나도 할 수 없다는 것입니다. Mac OS X 10.4 터미널에서 다음을 입력 locate mysql.sock
하면 /private/tmp/mysql.sock
. 소켓 파일이 해당 위치에 존재한다는 것은 의미가 있지만 실제로는 그렇지 않습니다.
-
소켓 파일을 어떻게 찾을 수 있습니까?
-
위치가 잘못된 위치를 반환하는 경우 일종의 메모리와 인덱스가 있어야합니다. 색인을 새로 고치려면 어떻게해야합니까?
답변
질문의 첫 부분에 답하려면 :
운영
% mysqladmin -p -u <user-name> variables
‘socket’변수를 확인하십시오.
답변
이것은 내 문제를 해결했습니다.
mysql_config --socket
최신 정보
mysql_config는 mysql.sock 파일의 위치를 알려줄 수 있지만 제 경우에는 파일이 존재하지 않았습니다. 그래서 my.cnf를 삭제했습니다.
sudo rm -rf /etc/my.cnf
그런 다음 mysql을 다시 시작했습니다.
brew services restart mysql
파일이 생성되었고 mysql이 이제 잘 실행되고 있습니다.
답변
소켓 파일은 MySQL 데몬이 시작될 때 자동으로 생성되어야합니다.
찾을 수없는 경우 포함해야하는 디렉토리가 존재하지 않거나 다른 파일 시스템 문제로 인해 소켓이 생성되지 않는 것입니다.
파일이 있어야하는 위치를 찾으려면 다음을 사용하십시오.
% mysqld --verbose --help | grep ^socket
답변
이것은 나를 위해 그것을 찾았습니다.
netstat -ln | grep mysql
맥 OS X
답변
내 문제는 mysql.sock-file이었습니다.
drupal 설치 과정에서 어떤 데이터베이스를 사용하고 싶은지 말해야하는데 데이터베이스를 찾을 수 없습니다.
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
시스템이 mysql.sock을 검색하고 있지만 잘못된 디렉토리에 있습니다.
당신이해야 할 일은 링크하는 것입니다.)
모든 중요한 정보를 Google에 검색하는 데 많은 시간이 걸렸지 만 적응하는 방법을 찾는데도 몇 시간이 걸렸지 만 이제 결과를 발표 할 수 있습니다 .D
추신 : 정확히되고 싶다면 /tmp/mysql.sock-file
php.ini (또는 php.default.ini)가 제공하는 디렉토리에 (당신의 시스템에있는 경우) 링크해야합니다 .pdo_mysql.default_socket= ...
답변
다음을 사용하여 정확한 경로를 얻었습니다.
netstat -ln | grep -o -m 1 -E '\S*mysqld?\.sock'
이것은 경로 만 반환하고 입력이 필요하지 않기 때문에 잠재적으로 쉘 스크립트에서 사용할 수 있습니다.
이 작업을 수행하려면 MySQL이 현재 컴퓨터에서 실행 중이어야합니다. MariaDB에서도 작동합니다.
답변
원래의 질문은 a) 파일이 어디에 있는지, b) 어디에서 찾고 있는지 (그리고 우리가 위치 찾기 나 grep을 할 때 왜 찾을 수 없는지)에 대한 혼란에서 비롯된 것 같습니다. Alnitak의 요점은 링크 된 위치를 찾고 싶다는 것입니다.하지만 grep은 링크를 표시하지 않습니다. 파일은 링크이기 때문에 거기에 있지 않습니다. 단지 포인터 일뿐입니다. 링크를 어디에 둘 것인지 알아야합니다.
내 양말 파일은 확실히 / tmp에 있고 내가 받고있는 오류는 / var / lib / (/ var이 아님)에서 찾고 있습니다. 지금 / var 및 / var / lib에 연결했지만 여전히 오류가 발생합니다. ” ‘var / lib / mysql.sock’소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2)”.
오류 후 (2)에 유의하십시오 …. 다른 스레드에서 이것이 소켓을 실제로 사용하려고 시도 할 수 있음을 의미하지만 소켓 자체에 문제가 있음을 발견했습니다. 따라서 시스템을 완전히 종료합니다. 소켓이 닫힙니다. 그런 다음 다시 시작하면 문제가 해결됩니다. 나는 이것을 시도했지만 그것은 나를 위해 작동하지 않았습니다 (이제 너무 빨리 다시 시작했는지 질문합니까? 정말?) 아마도 다른 사람에게 해결책이 될 것입니다.