your programing

mysql.sock을 찾을 수 없습니다

lovepro 2020. 10. 13. 08:18
반응형

mysql.sock을 찾을 수 없습니다


mysql을 다시 설치해야했는데 시작하는 데 문제가 있습니다. 소켓 (mysql.sock)을 찾을 수 없습니다. : 문제는 둘 다 내 맥 OS X 10.4 터미널 I. 할 수있는, 내가 입력 없다는 것입니다 locate mysql.sock, 내가 돌아올 /private/tmp/mysql.sock. 소켓 파일이 해당 위치에 존재한다는 것은 이치에 맞지만 실제로는 그렇지 않습니다.

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

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


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

운영

% 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 파일이었습니다.

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= ...


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

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'소켓 (2)을 통해 로컬 MySQL 서버에 연결할 수 없습니다."

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


$ mysqladmin variables | grep sock

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


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

/usr/libexec/locate.updatedb

(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

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 : 연결 준비.

Version: '5.7.12' socket: '/tmp/mysql.sock' port: 3306 Homebrew


I couldn't find mysql socket at all so reinstalled mysql server(all tables and phpmyadmin settings were preserved). Here are the commands:

1) Install

sudo apt-get install mysql-server

2) Follow terminal configuration steps

sudo mysql_secure_installation

3) Check status: (Should return "Active: active (running)")

systemctl status mysql.service


Unfortunately none of the above have worked in my case. But finally I found solutions.

To find where is mysql.sock file, simply open xampp manager, select MySQL and click on Configure on the right. On the config panel click Open Conf File, and simply search for mysql.sock by pressing the CMD+F shortcut.

In my case, the owner of the mysql.sock was changed, and I had to change it back to root admin with: chmod root:admin mysql.sock

After that the database had been accessed.


I can't help with question #1, but to refresh locate's file database, run:

updatedb

참고URL : https://stackoverflow.com/questions/748478/cannot-find-mysql-sock

반응형