
ySQL의 소켓 오류 해결 방법
2022-06-01 last update
6 minutes reading Ubuntu MySQL Databases Ubuntu 18.04MySQL은 플러그인 파일을 사용하여 데이터베이스 서버와의 연결을 관리합니다. 플러그인 파일은 특수한 파일로 서로 다른 프로세스 간의 통신에 도움이 됩니다.MySQL 서버의 소켓 파일 이름은
시스템 또는 MySQL 구성에 대한 변경으로 인해 MySQL이 소켓 파일을 읽지 못해 데이터베이스에 접근하지 못하게 될 수도 있습니다.가장 일반적인 소켓 오류는 다음과 같습니다.
이 오류의 흔한 원인 중 하나는 MySQL 서비스가 정지되었거나 시작되지 않았기 때문입니다. 이것은 우선 플러그인 파일을 만들 수 없다는 것을 의미합니다.이 오류의 원인을 확인하려면
/etc/mysql/mysql.conf.d/mysqld.회사 명
mysqld.sock
이며, Ubuntu 시스템에서는 일반적으로 /var/run/mysqld/
디렉터리에 저장됩니다.이 파일은 MySQL 서비스에서 자동으로 생성됩니다.시스템 또는 MySQL 구성에 대한 변경으로 인해 MySQL이 소켓 파일을 읽지 못해 데이터베이스에 접근하지 못하게 될 수도 있습니다.가장 일반적인 소켓 오류는 다음과 같습니다.
OutputERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
이 오류가 발생한 원인은 매우 많고 가능한 해결 방법도 있다.이 오류의 흔한 원인 중 하나는 MySQL 서비스가 정지되었거나 시작되지 않았기 때문입니다. 이것은 우선 플러그인 파일을 만들 수 없다는 것을 의미합니다.이 오류의 원인을 확인하려면
systemctl
를 사용하여 서비스를 시작하십시오.- sudo systemctl start mysql
그런 다음 MySQL 프롬프트에 다시 액세스하십시오.소켓 오류가 계속 발생하면 MySQL 설치에서 소켓 파일을 찾는 위치를 자세히 확인하십시오.이 정보는 mysqld.cnf
파일에서 확인할 수 있습니다.- sudo nano /etc/mysql/mysql.conf.d/mysql.cnf
이 파일의 socket
섹션에서 [mysqld]
매개변수를 찾습니다.다음과 같이 표시됩니다./etc/mysql/mysql.conf.d/mysqld.회사 명
. . .
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
. . .
이 파일을 닫고 MySQL이 원하는 디렉토리에서 mysqld.sock
명령을 실행하여 ls
파일이 있는지 확인합니다.- ls -a /var/run/mysqld/
소켓 파일이 있으면 명령 출력에 표시됩니다.Output. .. mysqld.pid mysqld.sock mysqld.sock.lock
파일이 존재하지 않으면 MySQL이 파일을 만들려고 시도하고 있지만 권한이 충분하지 않기 때문입니다.디렉터리의 소유권을 mysql 사용자와 그룹으로 변경함으로써 올바른 권한을 확보할 수 있습니다.- sudo chown mysql:mysql /var/run/mysqld/
그리고 mysql 사용자가 이 디렉터리에 적당한 권한을 가지고 있는지 확인하십시오.이러한 설정은 775
대부분의 경우 유효합니다.- sudo chmod -R 755 /var/run/mysqld/
마지막으로 MySQL 서비스를 다시 시작하여 소켓 파일을 다시 만들 수 있습니다.- sudo systemctl restart mysql
그런 다음 MySQL 프롬프트에 다시 액세스하십시오.만약 여전히 플러그인 오류가 발생한다면, MySQL 실례에 더 깊은 문제가 존재할 수 있습니다. 이 경우, 오류 로그를 보고 어떤 단서를 제공할 수 있는지 확인해야 합니다.