[mysql] 소켓 ‘/var/lib/mysql/mysql.sock’을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).

mysql에 연결하려고 할 때 다음 오류가 발생합니다.

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

이 오류에 대한 해결책이 있습니까? 그 이유는 무엇입니까?



답변

“localhost”또는 “127.0.0.1”에 연결하고 있습니까? “localhost”에 연결하면 소켓 커넥터가 사용되지만 “127.0.0.1”에 연결하면 TCP / IP 커넥터가 사용됩니다. 소켓 커넥터가 활성화 / 작동되지 않으면 “127.0.0.1”을 사용해보십시오.


답변

mysql 서비스가 실행 중인지 확인하십시오

service mysqld start

그런 다음 다음 중 하나를 시도하십시오.

(mysql에 비밀번호를 설정하지 않은 경우)

mysql -u root

이미 비밀번호를 설정 한 경우

mysql -u root -p


답변

my.cnf 파일 (일반적으로 etc 폴더에 있음)이 올바르게 구성되어있는 경우

socket=/var/lib/mysql/mysql.sock

다음 명령으로 mysql이 실행 중인지 확인할 수 있습니다.

mysqladmin -u root -p status

mysql 폴더로 권한을 변경하십시오. 로컬에서 작업중인 경우 다음을 시도해보십시오.

sudo chmod -R 777 /var/lib/mysql/

나를 위해 그것을 해결


답변

MySQL 서버가 실행 중이 아니거나 소켓 파일의 위치가 아닙니다 (my.cnf 확인).


답변

mysql.sock존재하지 않을 가능성 이 높습니다 /var/lib/mysql/.

다른 위치에서 동일한 파일을 찾으면 심볼릭 링크하십시오.

예를 들어 : 나는 그것을 가지고 /data/mysql_datadir/mysql.sock

사용자를 mysql로 ​​전환하고 아래 언급 된대로 실행하십시오.

su mysql

ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock

그게 내 문제를 해결했다


답변

최신 RHEL을 사용하는 경우 mysql db 대신 mariadb (오픈 소스 mysql db)를 시작해야 할 수 있습니다.

yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start

그런 다음 일반적인 방식으로 mysql에 액세스 할 수 있어야합니다.

mysql -u root -p


답변

내 경우에는 내가 다른 위치의 내부에 소켓 파일을 이동 한 /etc/my.cnf
에서 /var/lib/mysql/mysql.sock/tmp/mysql.sock

mysqld 서비스를 다시 시작한 후에도 연결하려고 할 때 여전히 오류 메시지가 표시됩니다.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

문제는 클라이언트가 구성되는 방식에 있습니다. 진단을 실행하면 실제로 올바른 소켓 경로가 표시됩니다. 예 :ps aux | grep mysqld

공장:

mysql -uroot -p -h127.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock

작동하지 않습니다 :

mysql -uroot -p
mysql -uroot -p -hlocalhost

mysql 설정의 섹션 아래에 동일한 소켓 라인 을 추가 하여이 문제를 해결할 수 있습니다 .[client]