소켓 '/tmp/mysql.sock'을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).


143

MySQL 서버를 설치하고 연결하려고했지만 오류가 발생합니다.

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

내 / tmp 디렉토리를 확인했는데 mysql.sock이 없습니다. 어디에서나 mysql.sock을 찾을 수 없습니다. 나는 그것이있을 수 있음을 읽었습니다.

    /var/lib/mysql/mysql.sock

그러나 나는 거기에서도 확인했으며 mysql 디렉토리조차 없으며 / lib 안에 postfix 일뿐입니다. 누구 든지이 문제를 도울 수 있습니까?


2
Mac OS X에서 작업 중입니다
user3344382

안녕하세요, 연결하는 데 사용하는 명령을 붙여 넣을 수 있습니까? 또한 MySQL을 시작하셨습니까?
Mark Butler

@MarkButler이 명령을 사용하고 있습니다 : / usr / local / mysql / bin / mysql
user3344382

바로 서버가 실행되지 않았을뿐입니다. 그러나 여전히 mysql.sock이 어디에 있는지 이해할 수 없습니다. 다른 숨겨진 장소가있을 수 있습니까?
user3344382

이 오류는 매우 일반적이며 여러 가지 이유로 발생할 수 있습니다. 깔끔한 요약은 medium.com/@7anac/…를
Janac Meena

답변:


272

MySQL 서버를 시작하십시오.

mysql.server start


44
오류! 서버는 PID 파일을 업데이트하지 않고 종료
bastianwegge


mysql 서비스 시작을 잊어 버렸습니다!
GeekHades

1
@bastianwegge은 그때 사용하여 다시 시작 /tmp/mysql.sock 삭제했습니다 내 경우 /usr/local/var/mysql/USERNAME.local.err에서 오류 파일을 확인하려고mysql.server start
조쉬 브래들리

61

OS X Yosemite를 업데이트 한 후에도 같은 질문이 있습니다. 솔루션은 매우 간단합니다. 시스템 환경 설정을 확인하십시오-> mysql, 상태는 STOP입니다. 다시 시작하면 내 Mac에서 제대로 작동합니다.


1
매우 간단한 톤 @keren 덕분에, 내 시간이 유일한 문제 일 때 my.cnf 파일의 설정을 변경하는 데 45 분이 낭비되었습니다.
kandroidj

DMG 설치라는 용어로 아이디어가 없었습니다.
Rameshwar Vyevhare

이것은 불행히도 나를 도와주지 않았다
simhumileco

간단하고 굉장합니다!
Desmond DAI

6
음? 왜 OSX의 시스템 환경 설정에 MySQL 옵션이 있습니까?
AlxVallejo

45

MAMP

ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

에서 https://coderwall.com/p/w5kwzw/solved-can-t-connect-to-local-mysql-server-through-socket-tmp-mysql-sock

업데이트 : 컴퓨터가 다시 시작할 때 마다이 명령을 입력해야하므로 바로 가기를 만들었습니다.

터미널 유형에서 다음을 수행하십시오.

~: vi ~/.profile

더하다

alias ...='source ~/.profile'
alias sockit='sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock'

저장.

터미널 유형에서 :

~: ... .profile 구성을 소싱합니다.

이제 터미널에 입력하면됩니다

~: sockit

1
대박. 내가 찾던 픽스.
JoshHighland

1
이 게시물에 여러 번 돌아 왔으며 항상 작동합니다.
Trey Copeland

MAMP 외부에서 mysql 5.7.1로 업그레이드하여 오류가 발생했습니다. 이것은 나를 위해 그것을 고쳤다
David


32

다음 명령으로 내 문제가 해결되었습니다.

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start

1
3 시간 동안 검색하면 내 문제가 해결되었습니다. 방금 homebrew를 통해 mysql을 설치 brew install mysql했지만 homebrew가 제대로 실행하라는 명령은 없습니다. 이로 인해 모든 문제가 해결되었습니다. 감사합니다 !! 당신이 쓴 첫 줄은 정확히 무엇입니까? 무슨 뜻인가요?
mesqueeb

감사합니다, 잘 작동합니다!
Nirojan Selvanathan

1
나를 위해 그것은이었다 : sudo chown -R _mysql : mysql / usr / local / mysql / data
Junaid Bhura

chown -R 재귀 적으로 소유자 변경 -R 재귀
Hos Mercury

mariadb (10.2.10)를 설치할 때 깨끗한 10.13.1 및 homebrew에서이 오류가 발생했습니다. 이 소유자 변경으로 문제가 해결되었으므로 이제는 sudo brew services start mariadb로그인시뿐만 아니라 부팅시 mariadb도 시작합니다. 예! 감사합니다!
iggie

16

모든 솔루션을 시도한 후 호스트를 지정한 후에 만 ​​작동했습니다.

mysql -u root -p -h127.0.0.1

비밀번호를 요청할 때

Enter password:

엔터 키를 치시오

위와 같이 모든 것이 정상이면 작동합니다.


2
Docker for Mac을 사용하여 도커 컨테이너로 mysql을 설정하고 3306 포트를 Mac에 매핑합니다. 을 추가하지 않으면 -h 127.0.0.1항상 프롬프트가 표시됩니다 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2). 인수를 추가하면 잘 작동합니다.
Evi Song

1
127.0.0.1을 통과하면 소켓을 사용하지 않기 때문입니다. 더 좁은 해결 방법.
Lucas Morgan

1
MySQL을 설치할 때 명령을 실행하지 않았으므로 플래그 mysql -u root -h127.0.0.1 없이 실행 하면 -p효과가 없었습니다 mysql_secure_installation. 이 경우 설치시 기본적으로 비밀번호가 필요하지 않습니다.
Richie Thomas

1
매력처럼 일했다!
Panduka DeSilva

10

몇 시간 동안 고군분투 한 후 일한 유일한 것은

sudo mysql.server start

그런 다음 보안 설치를 수행하십시오.

mysql_secure_installation 

그런 다음을 통해 db에 연결하십시오.

mysql -uroot -p

MySQL은 homebrew를 통해 설치되며 버전은

Server version: 5.7.21 Homebrew

버전에 따라 솔루션이 다를 수 있으므로 버전을 지정하면 도움이 될 수 있습니다.


9

mysql 설정 파일 /etc/my.cnf에서 아래 내용을 변경 한 다음 mysqlddameon 프로세스 를 다시 시작하십시오.

[client]
socket=/var/lib/mysql/mysql.sock

이 관련 스레드를 확인하십시오.

소켓 '/tmp/mysql.sock을 통해 로컬 MySQL 서버에 연결할 수 없습니다


/ etc 디렉토리에는 my.cnf 파일이 없습니다. 나는 그 파일을 수동으로 만들 수 있다고 생각하지만 / var / lib에 mysql 디렉토리가 없다고 말했을 때 소켓은 어떻게 존재할 수 있습니까?
user3344382

내가 게시 한 관련 스레드를 확인하고 mysql 서버가 실제로 실행 중인지 확인하십시오.
Rahul

/etc/mysql/my.cnf
Devon

brew로 설치 한 경우 /tmp/mysql.sock양말 위치 로 사용해야 합니다.
Mark Shust at M.academy

8

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

netstat -nlp TCP를 나열하는 경우 "localhost"대신 DB에 연결하는 동안 127.0.0.1을 사용하십시오.

여기에서 MySQL 문서를 확인 하십시오.


이것은 저에게 효과적이며 mysql이 살아 있음을 증명하지만 로컬 소켓에 연결할 수없는 이유는 무엇입니까?
Colin D

8

이것을 시도해보십시오.

sudo /usr/local/mysql/support-files/mysql.server 시작


왜이 길? "mywhere is mywhere"명령 (MAC OS)을 사용하여 / usr / local / mysql / bin / 출력을 출력하는 동안 Mac에서이 경로를 식별하는 방법은 무엇입니까?
Vineeth Bhaskaran

Ya, 경로는 그에 따라 변한다
vasanth vasu

4

Mac OS X에서 XAMPP를 사용하고 Homebrew와 함께 MySQL을 설치 한 경우이 문제가 발생할 수 있습니다. XAMPP 관리자 창에서 서버 관리로 이동하여 MySQL을 선택한 다음 구성을 클릭하고 구성 파일을 열고 소켓 파일 경로가 있고 경로를 MySQL 호스트 구성에 넣으면 작동합니다.

다음과 같습니다.

...
[client]
#password   = your_password
port        = 3306
socket      = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
...

그런 다음 Django에서 :

...    
DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.mysql",
            "NAME": "database_name",
            "USER": "user",
            "PASSWORD": "password",
            "HOST": "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock",
            "PORT": "",
        }
    }
...

도움이 되었기를 바랍니다.


3

첫째, 데이터 디렉토리의 위치를 ​​아는 것이 핵심이었습니다. /usr/local/var/mysql 여기에는 내 로컬 컴퓨터 이름 앞에 확장자가 .err 인 파일이 하나 이상 있습니다. 진단하는 데 필요한 모든 정보가 있습니다.

mysql 8을 먼저 설치하여 망친 것 같습니다. 내 앱이 호환되지 않으므로 다시 5.7로 다운 그레이드해야했습니다.

나를 위해 일한 내 솔루션은 /usr/local/etc/my.cnf로 이동했습니다.

이 줄이 있다면 찾으십시오. mysql 8과 관련이 있다고 생각합니다.

mysqlx-bind-address = 127.0.0.1 

mysql 5.7에서는 오류 로그에 마음에 들지 않기 때문에 제거하십시오.

바인드 주소 아래에 없으면이 행을 추가하십시오.

socket=/tmp/mysql.sock

/tmp디렉토리로 이동하여 mysql.sock 파일을 삭제하십시오. 서버 시작시 양말 파일을 다시 작성합니다.

중지 된 상태에서 mySQL을 사용하여 데이터 디렉토리를 폐기하십시오. 내했다 /usr/local/var/mysql. 이곳은 로그가있는 곳과 같습니다

거기에서 나는 달렸다

>mysqld --initialize

그런 다음 모든 것이 작동하기 시작했습니다 ...이 명령은 마지막에 임의의 암호를 제공합니다. 다음 단계를 위해 비밀번호를 저장하십시오

이것을 실행하여 내 자신의 암호를 할당하십시오.

>mysql_secure_installation 

양자 모두

>brew services stop mysql@5.7

>mysql.server start

지금 일하고 있습니다. 도움이 되었기를 바랍니다. 약 3 시간의 시행 착오입니다.


3

먼저 이것을 입력하십시오 :

brew services start mysql

그런 다음-:

mysql -uroot

0

나는 이것을하는 데 많은 시간을 보냈다. 내 서버에 django 앱을 넣고 싶다. 내가 실행할 python manage.py migrate때이 질문을 만났다.

과!! 나는 이것을 설정했다 ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock 그것은 마침내 효과가 있었다!



0

터미널에서 mysql 서버를 중지하고 시작하면 문제가 해결되었습니다. 다음은 MacO에서 mysql 서버를 중지하고 시작하는 cmd입니다.

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start

참고 : Mac 시스템 환경 설정에서 서비스를 다시 시작해도 Mac의 문제가 해결되지 않았습니다. 터미널에서 다시 시작해보십시오.


0

macOS에서 실행중인 경우 먼저 '시스템 환경 설정'으로 이동하여 MySQL이 실행 중인지 확인하는 것이 더 쉽습니다.


-1

CentOS의 경우 mysql을 초기화하는 파일은 다음 위치에 있습니다.

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