
이전에 .htacess 파일과 관련된 문제가 있었지만 문제가 해결되었지만 그 과정에서 Apache2를 다시 설치하는 것이 좋을 것이라고 생각했습니다. 모든 웹 서버 문제가 해결되었지만 MySQL을 사용하려고 하면 다음 오류가 발생했습니다.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
도와주세요 :O. 모든 데이터베이스를 다시 만드는 것은 괜찮지만 MySQL이 작동하도록 할 수는 없습니다. 따라서 이 문제가 해결될 때까지 기본적으로 서버에서 아무것도 할 수 없습니다.
미리 감사드립니다 :)
답변1
그런 문제가 생겼을 때 나는 3가지 일을 합니다.
mysql 프로세스가 실행 중인지 확인합니다. A는
ps -e
트릭을 수행해야합니다. 나에게는service mysql stop
. 나는 수동으로 해야 했다killall mysql
.my.cnf가 소켓 파일이 있어야 하는 위치를 올바르게 가리키는지 확인했습니다. 때로는 구성에 /var/run...이 있지만 구성 파일에는 다른 내용이 표시되는 경우가 있습니다. my.conf 파일이 있어야 할 위치도 마찬가지입니다. 기본적으로 /etc/mysql/my.cnf에 표시되지만 다른 경우에는 /etc/my.cnf에 있을 수 있습니다. (그리고 /etc/mysql 폴더는 2개의 mysql 구성 소스와 혼동하지 않아야 합니다.)
마지막으로 소켓 파일이 있는 디렉터리에 올바른 권한이 있는지 확인하세요.
대부분의 경우 1이면 충분합니다. 적어도 일부 구성을 수행할 때 이런 일이 발생하며 실수로 잘못된 conf로 mysql을 다시 로드합니다.
답변2
오류(2002) Can't connect to ...은(는) 일반적으로 시스템에서 실행 중인 MySQL 서버가 없음을 의미합니다. 다시 시작해 보세요.
~$ sudo service mysql restart
mysql start/running, process 3912
아니면 중지했다가 다시 시작하세요.
:~$ sudo service mysql stop
mysql stop/waiting
~$ sudo service mysql start
mysql start/running, process 3994
또한 사용 중인 TCP/IP 포트가 방화벽이나 포트 차단 서비스에 의해 차단되지 않았는지 확인해야 합니다.여기서 더 읽어보세요.
sudo telnet some_host 3306
Enter 키를 몇 번 실행하고 눌러 해당 호스트에서 서버가 실행 중인지 확인합니다 . (3306은 기본 MySQL 포트 번호입니다. 서버가 다른 포트를 수신하고 있는 경우 값을 변경하십시오.) 실행 중이고 해당 포트를 수신하는 MySQL 서버가 있는 경우,서버의 버전 번호가 포함된 응답을 받아야 합니다.. 와 같은 오류가 발생 telnet: Unable to connect to remote host: Connection refused
하면해당 포트에서 실행 중인 서버가 없습니다..
내 예를 들어 (스페인어):
~$ sudo netstat -a | grep mysql
tcp 0 0 localhost:mysql *:* ESCUCHAR
unix 2 [ ACC ] FLUJO ESCUCHANDO 18740 /var/run/mysqld/mysqd.sock
내 작업이 작동 중입니다. 하지만 로컬 호스트에 텔넷을 연결하여 확인해 보겠습니다. =디
~$ sudo telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
E
5.1.61-0ubuntu0.11.10.1"]+Ya]-gQO{<X)_&<:NXConnection closed by foreign host.
marcelo@acer:~$