mysql.sock을 찾을 수 없습니다


81

방금 mysql을 다시 설치해야했는데 시작하는 데 문제가 있습니다. 소켓 (mysql.sock)을 찾을 수 없습니다. 문제는 나도 할 수 없다는 것입니다. Mac OS X 10.4 터미널에서 다음을 입력 locate mysql.sock하면 /private/tmp/mysql.sock. 소켓 파일이 해당 위치에 존재한다는 것은 의미가 있지만 실제로는 그렇지 않습니다.

  1. 소켓 파일을 어떻게 찾을 수 있습니까?

  2. 위치가 잘못된 위치를 반환하는 경우 일종의 메모리와 인덱스가 있어야합니다. 색인을 새로 고치려면 어떻게해야합니까?


1
/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Máxima Alekz

답변:


139

질문의 첫 부분에 답하려면 :

운영

% mysqladmin -p -u <user-name> variables

'socket'변수를 확인하십시오.


1
가능하다면이 대답을 올바른 대답으로 완전히 바꿀 것입니다. 내가 이것을 더 일찍 알았다면!
Steph Rose

49
을 (를) 실행했습니다 mysqladmin variables. 언제 무엇을해야 error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'합니까? :)
Alexander Wallin 2013 년

@afEkenholm과 동일한 오류가 발생하고 해결책을 찾을 수 없습니다. sudo find / -name mysql.sock루트 디렉토리에서 실행 했지만 시스템의 어느 곳에서도 mysql.sock을 찾을 수 없습니다. Mac OS 10.7 용 64 비트 dmg 파일을 사용하여 MySQL을 설치했습니다. 현재 Mavericks를 실행 중입니다.
b_dubb 2014

@b_dubb 나는 당신의 상황과 동일합니다. 어떻게 당신의 문제를 해결 했습니까?
MeganZhou 2014 년

1
다른 모든 작업없이 소켓 매개 변수를 빠르게 조회하려면 : mysqladmin 변수 | grep 소켓
BAR

48

이것은 내 문제를 해결했습니다.

mysql_config --socket

최신 정보

mysql_config는 mysql.sock 파일의 위치를 ​​알려줄 수 있지만 제 경우에는 파일이 존재하지 않았습니다. 그래서 my.cnf를 삭제했습니다.

sudo rm -rf /etc/my.cnf

그런 다음 mysql을 다시 시작했습니다.

brew services restart mysql

파일이 생성되었고 mysql이 이제 잘 실행되고 있습니다.


7
그 명령은 mysql.sock이 질문에 대답하는 곳을 알려줍니다
유진 라미레즈에게

3
이 명령은 파일의 위치를 ​​알려주지 않습니다. mysql이 찾는 위치, 즉 --socket에 대한 구성 설정을 알려줍니다.
morksinaanab

나는 ls: /etc/my.cnf: No such file or directory그것을 먼저 만들어야 하는가?
Abhi

당신은 파일이없는 경우 /etc/my.cnf보고 시도 /usr/loca/etc/my.cnf@Abhi -
rwcorbett

20

소켓 파일은 MySQL 데몬이 시작될 때 자동으로 생성되어야합니다.

찾을 수없는 경우 포함해야하는 디렉토리가 존재하지 않거나 다른 파일 시스템 문제로 인해 소켓이 생성되지 않는 것입니다.

파일이 있어야하는 위치를 찾으려면 다음을 사용하십시오.

% mysqld --verbose --help | grep ^socket

4
또는 mysql --verbose --help | grep ^ socket
Ondrej Rafaj

1
@Ondrej는 클라이언트 가 어디에서 찾고 있다고 생각 하는지 확실히 알려줍니다 . 실행의 요점은 서버가 실제로 배치 한 mysqld위치를 알려야한다는 것입니다!
Alnitak

내 XAMPP 설치에 내가의 단서가 없다 장면 ... 뒤에 무슨 일이 있었는지 ... :) 그래서 그것없이 시도 데몬을 찾을 수 없습니다 그것은 일
드레이 Rafaj

19

이것은 나를 위해 그것을 찾았습니다.

netstat -ln | grep mysql

맥 OS X


10

내 문제는 mysql.sock-file이었습니다.

drupal 설치 과정에서 어떤 데이터베이스를 사용하고 싶은지 말해야하는데 데이터베이스를 찾을 수 없습니다.

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

시스템이 mysql.sock을 검색하고 있지만 잘못된 디렉토리에 있습니다.

당신이해야 할 일은 링크하는 것입니다.)

모든 중요한 정보를 Google에 검색하는 데 많은 시간이 걸렸지 만 적응하는 방법을 찾는데도 몇 시간이 걸렸지 만 이제 결과를 발표 할 수 있습니다 .D

추신 : 정확히되고 싶다면 /tmp/mysql.sock-filephp.ini (또는 php.default.ini)가 제공하는 디렉토리에 (당신의 시스템에있는 경우) 링크해야합니다 .pdo_mysql.default_socket= ...


당신이 php.ini 파일에서 변경 한 후, pdo_mysql.default_socket당신은 부하의 변화에 대한 웹 서버를 다시 시작해야sudo apachectl restart
Szekelygobe

5

다음을 사용하여 정확한 경로를 얻었습니다.

netstat -ln | grep -o -m 1 -E '\S*mysqld?\.sock'

이것은 경로 만 반환하고 입력이 필요하지 않기 때문에 잠재적으로 쉘 스크립트에서 사용할 수 있습니다.

이 작업을 수행하려면 MySQL이 현재 컴퓨터에서 실행 중이어야합니다. MariaDB에서도 작동합니다.


좋은 대답입니다! 이것은 다른 답변과 달리 실제로 소켓의 위치를 ​​찾습니다.
Tyler Christian

2

원래의 질문은 a) 파일이 어디에 있는지, b) 어디에서 찾고 있는지 (그리고 우리가 위치 찾기 나 grep을 할 때 왜 찾을 수 없는지)에 대한 혼란에서 비롯된 것 같습니다. Alnitak의 요점은 링크 된 위치를 찾고 싶다는 것입니다.하지만 grep은 링크를 표시하지 않습니다. 파일은 링크이기 때문에 거기에 있지 않습니다. 단지 포인터 일뿐입니다. 링크를 어디에 둘 것인지 알아야합니다.

내 양말 파일은 확실히 / tmp에 있고 내가 받고있는 오류는 / var / lib / (/ var이 아님)에서 찾고 있습니다. 지금 / var 및 / var / lib에 연결했지만 여전히 오류가 발생합니다. " 'var / lib / mysql.sock'소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2)".

오류 후 (2)에 유의하십시오 .... 다른 스레드에서 이것이 소켓을 실제로 사용하려고 시도 할 수 있음을 의미하지만 소켓 자체에 문제가 있음을 발견했습니다. 따라서 시스템을 완전히 종료합니다. 소켓이 닫힙니다. 그런 다음 다시 시작하면 문제가 해결됩니다. 나는 이것을 시도했지만 그것은 나를 위해 작동하지 않았습니다 (이제 너무 빨리 다시 시작했는지 질문합니까? 정말?) 아마도 다른 사람에게 해결책이 될 것입니다.


1
$ mysqladmin variables | grep sock

대신 이것을 시도하면 요구되는 결과가 출력되어 관련없는 정보가 제거됩니다.


0

위치의 데이터베이스를 새로 고치려면

/usr/libexec/locate.updatedb

0

(Q1) 소켓 파일은 어떻게 찾을 수 있습니까?

소켓 파일의 기본 위치는 /tmp/mysql.sock이며 시스템의 소켓 파일을 찾으려면 이것을 사용하십시오.

mysqladmin variables | grep socket

MySql을 방금 설치 한 경우 서버가 시작될 때까지 mysql.sock 파일이 생성되지 않습니다. 이 명령을 사용하여 시작하십시오.

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

암호를 입력하라는 메시지가 표시되면 사용자 이름 root 또는 이와 같은 다른 사용자 이름을 전달할 수 있습니다. 터미널에서 암호를 입력하라는 메시지가 표시됩니다.

mysqladmin --user root --password variables | grep socket

(Q2) 색인 찾기를 새로 고치려면 어떻게해야합니까?

이 명령으로 Locate db를 새로 고칩니다.

sudo /usr/libexec/locate.updatedb

0

Mac OS X 10.11.6에서 동일한 오류가 발생합니다.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

여기와 관련 질문에서 많은 고뇌와 조언을 파헤친 후, 어느 것도 문제를 해결하지 못하는 것 같았고, 다시 돌아가서 설치된 폴더를 삭제하고 brew install mysql .

대부분의 명령에서 여전히 동일한 오류가 발생하지만 작동합니다.

/usr/local/bin/mysqld

및 반환 :

/ usr / local / bin / mysqld : 연결 준비.

버전 : '5.7.12'소켓 : '/tmp/mysql.sock'포트 : 3306 Homebrew


0

mysql 소켓을 전혀 찾을 수 없어서 mysql 서버를 다시 설치했습니다 (모든 테이블과 phpmyadmin 설정이 유지됨). 다음은 명령입니다.

1) 설치

sudo apt-get mysql-server 설치

2) 터미널 구성 단계 따르기

sudo mysql_secure_installation

3) 상태 확인 : ( "활성 : 활성 (실행 중)"을 반환해야 함)

systemctl 상태 mysql.service


0

불행히도 위의 어느 것도 제 경우에는 효과가 없습니다. 하지만 마침내 해결책을 찾았습니다.

mysql.sock 파일의 위치를 ​​찾으려면 xampp 관리자를 열고 MySQL을 선택한 다음 오른쪽의 구성을 클릭하십시오. 구성 패널에서 Open Conf File을 클릭하고 CMD + F 바로 가기를 눌러 mysql.sock을 검색합니다.

제 경우에는 mysql.sock의 소유자가 변경되었으며 chmod root : admin mysql.sock을 사용하여 루트 관리자로 다시 변경해야했습니다.

그 후 데이터베이스에 액세스했습니다.


-4

질문 # 1에는 도움이되지 않지만 locate의 파일 데이터베이스 를 새로 고치려면 다음을 실행하십시오.

updatedb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.