Mysql 오류 "'소켓 '/var/run/mysqld/mysqld.sock' (13)'을 통해 로컬 MySQL 서버에 연결할 수 없습니다." 루트 비밀번호도 재설정할 수 없습니다.

Mysql 오류 "'소켓 '/var/run/mysqld/mysqld.sock' (13)'을 통해 로컬 MySQL 서버에 연결할 수 없습니다." 루트 비밀번호도 재설정할 수 없습니다.

실행하려고 하는 몇 가지 명령에 대해 다음 오류가 발생하며 해당 명령을 입력하라는 메시지가 나타날 때마다 암호를 모릅니다. (참고: 방금 우분투 배포판을 22.04로 업데이트했지만 이전에는 'root'에 대한 비밀번호가 설정되지 않았거나 비어 있었습니다).

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)'

대부분의 게시물에서 일반적인 문제는 mysql-server가 실제로 실행되지 않는 것 같습니다. 하지만 내 것이 실행 중임을 알 수 있으며 sudo service mysql status다음 명령이 반환됩니다.

$ cat /etc/services | grep 3306
    mysql           3306/tcp
$  netstat -tulpn | grep 3306
    (No info could be read for "-p": geteuid()=1000 but you should be root.)
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -
    tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN  

다음 명령은 "연결할 수 없습니다..." 오류를 표시합니다.

  • mysqladmin -u 루트 -p 종료
  • mysqladmin 버전
  • mysql
  • mysql -u 루트
  • mysql -u 루트 -h 로컬호스트 -p

비밀번호를 입력하라는 메시지가 표시된다는 점에서 실행이 mysql -u root -h 127.0.0.1 -p작동하는 것 같지만 이전 비밀번호가 작동하지 않으며 실행할 수 없거나 루트 비밀번호를 성공적으로 재설정할 수 sudo mysqld_safe --skip-grant-tables &없습니다 sudo mysqld_safe --skip-grant-tables --skip-networking &.

나도 달려봤어...

추가 무작위 정보:

나는 또한 그것이 /var/run/mysqld/mysqld.sock이 프로세스 초기에 존재했다는 것을 알고 있지만(지금은 해당 디렉토리에 mysql.bak만 있음) 을 실행하면 sudo find / -type s"Permission Denied"가 포함된 여러 파일/디렉터리만 반환됩니다. WSL), 그래서 어딘가에 또 다른 mysql.sock이 있을 수 있는지 확인하지 않았습니다.

나는 또한 그것이 /etc/mysql/my.cnf-> 를 가리키고 있다는 것을 알고 있습니다 /etc/alternatives/my.cnf. 여기에는 다음과 같은 내용만 있습니다(일부 설명 제외).

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

답변1

  1. MySQL 중지(sudo systemctl stop mysql)
  2. 프로세스가 중지되었는지 확인
  3. --skip-grant-tables로 MySQL 시작

또는 mysql을 제거합니다. sudo apt purge mariadb-server mysql-common /etc/mysql 및 /var/lib/mysql이 비어 있거나 삭제되었는지 확인합니다.

재설치

관련 정보