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

Ubuntu 12.04 LTS (Precise Pangolin) 에 LAMP 를 설치 한 다음 phpMyAdmin에 루트 비밀번호를 설정했습니다 . 비밀번호를 잊어 버려 로그인 할 수 없습니다. 터미널을 통해 비밀번호를 변경하려고하면 다음과 같은 결과가 나타납니다.

ERROR 2002 (HY000) : ‘/var/run/mysqld/mysqld.sock’소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).

이 문제를 어떻게 해결할 수 있습니까? 램프를 열거 나 제거하거나 다시 설치할 수 없습니다.



답변

한 번이 문제가 발생하여을 설치하여 해결 mysql-server했으므로 mysql-server, mysql-client또는 다른 것이 아닌 을 설치했는지 확인하십시오 .

이 오류는 파일 /var/run/mysqld/mysqld.sock이 존재하지 않음을 의미 하며, 설치하지 않으면 mysql-server파일이 존재하지 않습니다. 이 경우에는

sudo apt-get install mysql-server

그러나 mysql-server이미 설치되어 실행중인 경우 구성 파일을 확인해야합니다.

구성 파일은 다음과 같습니다.

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

에서 /etc/my.cnf, 소켓 파일 설정이있을 수 있습니다 /tmp/mysql.sock와의 /etc/mysql/my.cnf소켓 파일 설정을 할 수있다 /var/run/mysqld/mysqld.sock. 따라서 제거하거나 이름을 바꾸고 /etc/mysql/my.cnfmysql을 사용하게 /etc/my.cnf하면 문제가 해결 될 수 있습니다.


답변

이 시도:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

또한 (실행 중인지 확인) :

telnet 127.0.0.1 3306 

아마도 my.cnf파일 의 구성이 잘못되었을 것입니다 /etc/somewhere( Linux 배포판 에 따라 다름 ).


답변

나는이 대답을 모두보고 있어요,하지만 아무도 할 수있는 옵션이 제공하지 암호 재설정더 허용 대답을 . 실제 질문은 암호 를 잊어 버렸 으므로 재설정해야하며 이러한 답변의 대부분이 암시하는 것처럼 암호가 실행 중인지 (설치되어 있는지 여부) 확인하지 않아야합니다.


비밀번호를 재설정하려면

다음 단계를 따르십시오 (암호를 잊어 버린 경우에 도움이 될 수 있으며 현재 상황에 있지 않더라도 언제든지 시도해 볼 수 있습니다).

  1. 중지 mysql

    sudo /etc/init.d/mysql stop

    또는 다른 배포판의 경우 :

    sudo /etc/init.d/mysqld stop
  2. 안전 모드에서 MySQL 시작

    sudo mysqld_safe --skip-grant-tables &
  3. 루트를 사용하여 MySQL에 로그인

    mysql -uroot
  4. 사용할 MySQL 데이터베이스를 선택하십시오

    use mysql;
  5. 비밀번호 재설정

    -- MySQL version < 5.7
    update user set password=PASSWORD("mynewpassword") where User='root';
    
    -- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
    
    update user set authentication_string=password('mynewpassword') where user='root';
  6. 권한을 플러시

    flush privileges;
  7. 서버를 다시 시작하십시오

    quit
  8. 서버를 중지하고 다시 시작하십시오.

    우분투와 데비안 :

    sudo /etc/init.d/mysql stop
    ...
    sudo /etc/init.d/mysql start

    CentOS, Fedora 및 RHEL에서 :

    sudo /etc/init.d/mysqld stop
    ...
    sudo /etc/init.d/mysqld start
  9. 새 비밀번호로 로그인

    mysql -u root -p
  10. 새로운 비밀번호를 입력하고 아무 일도 일어나지 않은 것처럼 서버를 다시 즐기십시오

이것은 MySQL 루트 암호 재설정 에서 가져 왔습니다 .


답변

다음 단계를 시도했습니다.

  1. 로그인 super user또는 사용sudo
  2. gedit를/etc/mysql/my.cnf 사용하여 열기
  3. 를 찾아 bind-address값을 데이터베이스 서버 호스트 시스템의 IP 주소로 변경하십시오. 나를 위해, localhost또는127.0.0.1
  4. 파일을 저장하고 닫습니다.
  5. 터미널로 돌아와서 실행 sudo service mysql start

그리고 그것은 나를 위해 일했습니다.


답변

다음 명령을 실행하여이 문제를 해결했습니다.

mysql.server start

Mac에 있고 brew를 사용하여 mysql을 설치하는 경우 다음을 사용하십시오.

brew services start mysql


답변

나는 비슷한 문제가 있었다. mysql이 시작되지 않습니다 :

sudo service mysql start
start: Job failed to start

의류를 사용 중지 한 경우 :

sudo aa-complain /etc/apparmor.d/*

문제가 사라졌습니다. 문제는 mysqld가 /run/mysqld/mysqld.sock에 액세스하려고했지만 apparmor 프로파일이 /var/run/mysqld/mysqld.sock에 대한 권한 만 부여했다는 것입니다 (/ var / run은 / run에 심볼릭 링크되어 있으므로 실제로 똑같다). mysqld가 모든 구성 파일에 설정되어 있기 때문에 var 경로를 사용하지 않는 이유를 모르지만 /etc/apparmor.d/usr.sbin.mysqld에 다음을 추가하여 문제를 해결할 수 있습니다.

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,


답변

제 경우에는 디스크가 가득 차서 mysqld를 더 이상 시작할 수 없었습니다.

mysql 서비스를 다시 시작하십시오.

> service mysql restart

또는

> service mysql stop

> service mysql start

stop명령을 인식하지 못하면 분명히 디스크 공간입니다. 파티션의 일부 공간을 mysql할당하거나 디스크를 크게 만들어야합니다.

디스크 공간을 확인하십시오

> df -h