오류 2003 (HY000) : '127.0.0.1'에서 MySQL 서버에 연결할 수 없음 (111)


135

다음 명령을 사용합니다.

mysql -u root -h 127.0.0.1 -p

오류 메시지는 다음과 같습니다.

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

누가이 문제를 해결하도록 도와 줄 수 있습니까?


3
mysql 데몬이 실행 중입니까? 방화벽이 있습니까? 텔넷 기본 포트를 MySQL로 할 것은 306 그렇게 - 텔넷 로컬 호스트 3306
MMMMMM

mysql 데몬이 실행 중입니다. 확실해.
Charlie Epps

1
그것은 단지 나입니까 아니면 로컬 mysql 서버에 연결하는 경우 호스트를 지정할 필요가 없습니다. 예를 들어 mysql -u root -p 작동합니까?
RMcLeod

확인하기 위해 로컬로 DB 서버에 연결하려고합니까?
존 케인

우분투 12.04.2에 mysql을 새로 설치했습니다. 버전은 14.14 Distrib 5.5.32이며 readline 6.2를 사용하는 debian-linux-gnu (x86_64)의 경우 기본 구성에 'skip-networking'이 포함되어 있지 않습니다. 따라서이 버전에서 오류가 발생하지 않습니다.

답변:


220

당신이 사용하는 경우 ubuntu, 당신은 (어떤 복제가 활성화되지있을 경우)이 오류를 방지하려면 다음 단계를 사용해야합니다 :

  1. 명령을 실행 vim /etc/mysql/my.cnf
  2. bind-address = 127.0.0.1# 기호를 사용하여 주석
  3. mysql 서버를 한 번 다시 시작하십시오.

최신 정보

1 단계 bind-address에서 my.cnf파일을 찾을 수 없으면 파일에서 찾으십시오 /etc/mysql/mysql.conf.d/mysqld.cnf.

MySQL 복제가 활성화 된 경우 업데이트

IP'my.cnf instead oflocalhost 또는 127.0.0.1` 에서 MySQL 서버가 바인드 된 MySQL 서버 를 연결하십시오 .


8
감사합니다!!! 나는 이것을 오랫동안 알아 내려고 노력했다! 그 줄을 주석 처리하고 파일을 저장 한 다음 실행했습니다 service mysql restart. 그리고 지금 작동합니다!
Ryan

제 경우에는 bind-address에 대해 서버 주소가 127.0.0.1 대신되었습니다. 이것이 당신에게 해당된다면, 당신은 또한 그것을 주석 처리해야합니다.
Vlad Schnakovszki

4
더 없다 bind-address = 127.0.0.1/etc/mysql/my.cnf
RegarBoy

6
@developer, 나는 여기에 내 발견 /etc/mysql/mysql.conf.d/mysqld.cnf을
한 번

bind-address = <main server ip>를 변경했지만 mysql을 다시 시작할 수 없습니다.
Avi Kehat

14

또는에 연결하는 localhost대신 시도 127.0.0.1하십시오 connection-config. 데비안 스퀴즈 서버에서 저를 위해 일했습니다.


참고로 localhost를 지정하면 Mysql이 TCP 소켓 대신 unix 소켓 (ubuntu의 /var/run/mysqld/mysqld.sock)을 통해 연결하도록 지시합니다.
Duke

8

연결하기 전에 데이터베이스 시작을 잊었을 때 발생합니다.

mysql.server start

그때

mysql -u root -p -h 127.0.0.1

맥과 리눅스의 터미널에서. 나는 그것이 Windows CMD에서 동일하다고 생각하지만 확실하지 않습니다.
Henry

sudo service mysqld startMySQL Community Server와 함께 AWS EC2 인스턴스에서 MySQL 서버를 시작해야했습니다 .
harshainfo

6

필자의 경우 (원격 연결) 서버의 방화벽을 끄는 데 도움이되었습니다.

service iptables stop

@ram 아마도 다른 방화벽을 사용하고있을 것입니다. 또는 당신의 문제는 전혀 방화벽이 아닙니다. 리눅스 배포판에 대한 설명서를 확인하십시오.
Bunyk

1
@ram tryservice firewalld stop
Maxim Mazurok

1
MySQL은 일반적으로 포트 3306에서 실행되므로 방화벽에 추가하십시오
kurdtpage

6

이 문제는 MySQL 서버가 설치되어 실행되지 않기 때문에 발생할 수 있습니다. 관리자 권한으로 시작 명령 프롬프트를 수행하고 명령을 입력하십시오.

"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install

"service successfully installed"메시지가 표시되면 MySQL 서비스를 시작해야합니다. 이를 수행하려면 : 서비스 창 (작업 관리자-> 서비스-> 서비스 열기)으로 이동하여 MySQL을 검색하고 맨 위 탐색 줄에서 시작하십시오. 그런 다음 mysql.exe를 열려고하면 작동합니다.


2
약간의 실수, cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" 그리고 mysqld --install. 또한 서버 번호는 다운로드에 따라 다릅니다.
Dejazmach

이렇게하면 내 문제가 해결되었습니다
Steffi Keran Rani J

6

상기 볼 my.cnf이 포함 된 경우, 파일 [client]절을하고는 port실제 포트 (기본값 3306)를 듣는 것보다 다른, 당신은 명시 적 매개 변수를 사용하여 서버에 연결해야합니다 -P 3306, 예를 들어,

mysql -u 루트 -h 127.0.0.1 -p -P 3306


어디에서 검색 할 수 있습니까 my.cnf? 그 거기 WAMP 서버에서 내 노트북에
디팍 케인즈

창문에서는 보통 'my.ini'라고 부릅니다
Yu Jiaao

나에게 포트는 문제였다. 감사합니다
Chandra Eskay

0

mysql 구성 파일 (my.ini 또는 my.cnf)에서 bind-address 매개 변수를 127.0.0.1로 변경하거나 여기에 정의 된 매개 변수를 사용해야합니다.

그래도 작동하지 않으면 mysql 서비스가 실제로 실행 중인지 확인해야합니다.


1
"bind-address = 127.0.0.1"줄을 my.cnf 파일에 추가했습니다. 그러나 작동하지 않습니다.
Charlie Epps

2
이 줄이 있으면 mysql은 나열된 주소 만 수신합니다. 원격 액세스를 가능하게하려면이 라인을 제거해야합니다. 이것이 보안에 미치는 영향에 유의하십시오.
webkraller

bind-address =127.0.0.1my.cnf를 추가 하면 DB에 대한 원격 연결이 비활성화됩니다. 따라서 그것이 작동하더라도 (그렇지 않습니다)-그것은 좋은 해결책이 아닙니다.
alfasin

바인드 주소는 다른 사람 이 연결 하지 않으려면 0.0.0.0이어야 합니다.
Lorne의 후작

0

기본이 아닌 포트에서 실행중인 넣다, 당신이 사용하려고 할 수 있습니다 --port=<port num> 제공 --skip-networkingIS를not enabled.


0

난 그냥이 문제가 .... Win7에서 실행 및 서버 서버 ...이 읽은

바이러스 백신 방화벽으로 인해 문제가 발생했습니다.


0

나는 또한 같은 문제에 직면했다. 다음은 문제를 해결하는 데 도움이되었습니다. 제어판-> 관리 도구->이 안에있는 서비스를 사용하면 MySQL servce를 볼 수 있습니다. 마우스 오른쪽 버튼을 클릭하고 start (force start)라고 말하십시오.


0

Docker 사용자의 경우 -로컬 SQL을 사용하여 연결mysql -u root -h 127.0.0.1 -p하고 데이터베이스가 Docker 컨테이너에서실행 중일때 mysql 서비스가 작동하고 실행 중인지 확인docker ps하십시오 (컨테이너가 아래로 연결 오류가 발생합니다.

모범 사례는 /etc/hosts컴퓨터에 IP를 설정하는 것입니다.

127.0.0.1 db.local

그리고 그것을 실행 mysql -u root -h db.local -p


0

iptables를 종료하지 말고 포트 3306을여십시오.

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

또는 sudo ufw allow 3306ufw를 사용하는 경우.

확인 : netstat -lnp | grep mysql당신은 그런 식으로 sth를 받아야합니다 :

cp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2048/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      2048/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     514961   2048/mysqld          /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     514987   2048/mysqld          /var/run/mysqld/mysqlx.sock

null 인 경우 cnf 파일에서 포트 = 3306 앞에 #을 삭제하십시오.


0

MySql 서버가 localhost에서 실행 중인지 확인하십시오.

리눅스에서

MySql 서버가 실행 중인지 확인하려면 다음을 수행하십시오.

sudo service mysql status

MySql 서버를 실행하려면

sudo service mysql start

Windows에서

MySql 서버가 실행 중인지 확인하려면 다음을 수행하십시오.

C:\Windows\system32>net start

MySql이 목록에 없으면 MySql을 시작 / 실행해야합니다.

MySql 서버를 실행하려면

C:\Windows\system32>net start mysql

도움이 되었기를 바랍니다.



-2

방금 mysql 서버를 다시 시작하면 문제가 해결되었습니다 .Windows net stop MySQL에서 net start MySQl 우분투 리눅스 sudo 서비스 mysql

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.