source

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

manycodes 2022. 11. 25. 20:54
반응형

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

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 안에 몇 가지 포스트픽스만 있습니다.누가 이 문제를 도와줄 수 있나요?

MySQL 서버 시작을 시도합니다.

mysql.server start

OS X Yosemite 업데이트 후 동일한 질문을 받았습니다.솔루션은 매우 간단합니다.시스템 프리퍼런스를 체크해 주세요-> mysql, 상태는 STOP 입니다.재기동만 하면, Mac에서는 정상적으로 동작합니다.

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'

절약하다.

터미널 유형:

~: ... 설정을합니다.프로파일 설정

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

~: sockit

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

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

sudo mysql.server start

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

mysql -u root -p -h127.0.0.1

패스워드를 요구할 때

Enter password:

Enter 키를 누르다

그리고 위와 같이 모든 것이 괜찮다면 그것은 작동할 것입니다.

몇 시간 동안 발버둥치고 나서 효과가 있었던 건

sudo mysql.server start

그런 다음 보안 설치를 수행합니다.

mysql_secure_installation 

그런 다음 를 통해 DB에 연결합니다.

mysql -uroot -p

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

Server version: 5.7.21 Homebrew

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

이거 먹어봐, 나한텐 효과가 있었어.

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

/etc/my.cnf한 후 시작합니다.mysqld

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

또한 이 관련 스레드를 확인합니다.

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

다음으로 문제를 해결했습니다.

MySQL 서버가 어디에 목록되어 있는지 확인합니다.netstat - nlp TCP에 목록되어 있다면 "localhost" 대신 DB에 연결하는 동안 127.0.0.1을 사용하십시오.

MySQL 문서 확인

첫 번째 유형:

brew services start mysql

그러면 이 -:

mysql -uroot

다음과 같이 터미널을 입력합니다.

mysql.server start

Mac OS X에서 XAMPP를 사용하고 있으며 MySQL with Homebrew를 설치한 경우 이 문제가 발생할 수 있습니다.XAMPP 매니저 창에서 [Manage Servers](서버 관리)로 이동하여 [MySQL](MySQL)을 선택하고 [configure](구성)을 클릭하여 Configure(설정 파일)를 엽니다.소켓 파일 경로가 있습니다.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": "",
        }
    }
...

이게 도움이 됐으면 좋겠다.

첫째, 데이터 디렉토리가 어디에 있는지 아는 것이 관건이었다. /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이 에러 로그에 「좋지 않다」라고 표시되어 있기 때문에, 삭제해 주세요.

또한 bind-address 아래에 없는 경우 이 행을 추가합니다.

socket=/tmp/mysql.sock

ㅇㅇㅇㅇㅇㅇ로 가보세요./tmpmysql.mysql.mysql.mysql이다에, 「 파일」 「Sock」이 재생성됩니다.

mySQL을 사용하여 데이터 디렉토리를 폐기합니다.는 ★★★★★★★★★★★★★★★★★./usr/local/var/mysql 장소와

거기서부터 나는 달렸다.

>mysqld --initialize

그러다 모든 게 잘 풀리기 시작했어요이 명령어는 마지막에 임의의 패스워드를 제공합니다.다음 단계를 위해 해당 암호 저장

내 암호를 할당하기 위해 이 작업을 실행합니다.

>mysql_secure_installation 

둘다요.

>brew services stop mysql@5.7

그리고.

>mysql.server start

동작하고 있습니다.이게 도움이 됐으면 좋겠다.3시간 정도 시행착오를 겪어야 해요.

터미널에서 mysql 서버를 중지하고 부팅하면 문제가 해결되었습니다.MacOS에서 mysql 서버를 정지 및 기동하기 위한 cmds를 다음에 나타냅니다.

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

참고: Mac 시스템 기본 설정에서 서비스를 다시 시작해도 Mac에서 문제가 해결되지 않았습니다.단말기에서 재기동을 시도합니다.

mysql 덤프를 가져오는 동안 동일한 문제가 발생했습니다.소켓 '/tmp/mysql.sock'을 통해 로컬 MySQL 서버에 연결할 수 없습니다.

mysql.sock 경로를 명시적으로 지정합니다.

  1. ps -ef|syslogp -syslog 라고 입력합니다.

    이 명령에서 mysql.sock 경로를 가져옵니다(예: /var/lib/mysql/mysql.sock).

  2. mysqldump --mysqldump=/var/lib/mysqdump/mysqdump.mysqdump -u 사용자 이름

    이것은 임의의 mysql 명령으로 실행할 수 있습니다.

CentOS의 경우 init mysql 파일은 다음 위치에 있습니다.

/etc/init.d/mysqld start

나는 이것을 하는 데 많은 시간을 들였다. django는 django를 사용합니다.python manage.py migrate는 이 .

했어!! 내가 이걸 세팅했어ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock★★★★★★★★★★★★★★★★★★★!

나도 같은 문제에 직면했다.이렇게 고쳤습니다.

순서 1: 다음 명령을 사용하여 mysql을 삭제합니다.

brew uninstall --force mysql

순서 2: 명령어 실행brew doctor맥주 패키지와 관련된 힌트를 얻을 수 있습니다.

3단계: 다음 명령을 사용하여 brew 패키지를 정리합니다.

brew cleanup

4단계: 다음 명령을 사용하여 이전에 설치된 mysql 데이터를 이동 또는 삭제합니다.

mv /usr/local/var/mysql/ /usr/local/var/old_mysql

스텝 5: 마지막으로 다음 명령을 사용하여 mysql을 다시 설치합니다.

brew install mysql

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

언급URL : https://stackoverflow.com/questions/22436028/cant-connect-to-local-mysql-server-through-socket-tmp-mysql-sock-2

반응형