실행하려고 하는 몇 가지 명령에 대해 다음 오류가 발생하며 해당 명령을 입력하라는 메시지가 나타날 때마다 암호를 모릅니다. (참고: 방금 우분투 배포판을 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 &
.
나도 달려봤어...
- sudo apt-get install --mysql-server 다시 설치
- sudo 적절한 업데이트
- sudo 적절한 업그레이드
- sudo apt 설치 mysql-서버
- sudo apt 설치 mysql-클라이언트
- sudo usermod -d /var/lib/mysql/ mysql
- sudo dpkg --configure -a
- 이 게시물의 상위 두 답변의 권장 사항을 따랐습니다.https://stackoverflow.com/questions/41984956/cant-reset-root-password-with-skip-grant-tables-on-ubuntu-16
- 다음 지침에 따라 MySQL을 제거하려고 시도했습니다.여기
- 양말 폴더를 백업하고 조언대로 복원을 시도했습니다.여기
추가 무작위 정보:
나는 또한 그것이 /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
- MySQL 중지(sudo systemctl stop mysql)
- 프로세스가 중지되었는지 확인
- --skip-grant-tables로 MySQL 시작
또는 mysql을 제거합니다. sudo apt purge mariadb-server mysql-common /etc/mysql 및 /var/lib/mysql이 비어 있거나 삭제되었는지 확인합니다.
재설치