MySQL 서버 오류 111에 연결할 수 없습니다.


152

Linux 상자 IP = 192.168.1.100에 mysql 서버를 설치했지만이 IP에 연결하려고하면 항상 오류 (111)입니다. 그러나 localhost를 사용하면 127.0.0.1이 정상입니다.

beer @ beer-laptop # ifconfig | grep "inet addr"
          inet addr : 127.0.0.1 마스크 : 255.0.0.0
          inet addr : 192.168.1.100 Bcast : 192.168.1.255 마스크 : 255.255.255.0

beer @ beer-laptop # mysql -ubeer -pbeer -h192.168.1.100
오류 2003 (HY000) : '192.168.1.100'에서 MySQL 서버에 연결할 수 없음 (111)

beer @ beer-laptop # mysql -ubeer -pbeer -hlocalhost
MySQL 모니터에 오신 것을 환영합니다. 명령은;로 끝납니다. 또는 \ g.
MySQL 연결 ID는 160입니다
서버 버전 : 5.1.31-1ubuntu2 (우분투)

'help;'를 입력하십시오. 또는 도움을 받으려면 '\ h'. 버퍼를 지우려면 '\ c'를 입력하십시오.

MySQL> 

beer @ beer-laptop # mysql -ubeer -pbeer -h127.0.0.1
MySQL 모니터에 오신 것을 환영합니다. 명령은;로 끝납니다. 또는 \ g.
MySQL 연결 ID는 161입니다
서버 버전 : 5.1.31-1ubuntu2 (우분투)

'help;'를 입력하십시오. 또는 도움을 받으려면 '\ h'. 버퍼를 지우려면 '\ c'를 입력하십시오.

MySQL> 

다른 컴퓨터에서 연결해도 111 오류가 발생합니다.

another @ another-laptop # mysql -ubeer -pbeer -h192.168.1.100
오류 2003 (HY000) : '192.168.1.100'에서 MySQL 서버에 연결할 수 없음 (111)

이 경우 localhost / 127.0.0.1과 192.168.1.100의 차이점은 무엇입니까? 다른 컴퓨터에서이 데이터베이스에 연결하는 방법을 모르겠습니다.

도와주세요. 감사.

답변:


263

아마도 MySQL 서버가 로컬 호스트 인터페이스만을 수신하고 있음을 의미합니다.

이런 줄이 있다면 :

bind-address = 127.0.0.1

당신의에서 my.cnf구성 파일 , 당신은 그들이 언급해야 합니다 (행의 시작 부분에 #을 추가) , 다시 시작 MySQL을.

sudo service mysql restart

물론 이렇게하려면 서버의 관리자 여야합니다.


6
분명히, 그는 skip-networking라인 이 없습니다 ;-)
Michael Krelin-해커

11
어떻게 MySQL의 my.cnf의 위치를 알고 : stackoverflow.com/questions/2482234/...을
시릴 Jacquart

2
그러나 mysql Workbench에서 연결할 수 있으면 어떻게됩니까? 나도 같은 문제가있어.
George Pamfilis 2016 년

3
나는 대답에 주어진 것을 따랐지만 여전히 작동하지 못했습니다. 그런 다음 "bind-address"매개 변수가 "/etc/mysql/mysql.conf.d/mysqld.cnf"파일에 있음을 알아 냈습니다. 저기서 주석 처리하고 작동했습니다!
Yahya

3
최신 버전의 ubuntu> = 16.04는 /etc/mysql/mysql.conf.d/myqld.cnf
dellasavia에

38

111은 연결 거부를 의미하며 , 이는 mysqld가 localhost인터페이스 만 수신함을 의미합니다 .

이를 변경하려면 파일 섹션의 bind-address값을 확인 하십시오.mysqldmy.cnf


포트 번호가 유효한지 확인하는 것도 좋습니다. 부정합 :3306:3307도 111 오류가 발생할 수있다.
NXT

2
@ NXT, mysql이 다른 인터페이스의 다른 포트에서 수신 할 수 있는지조차 알지 못하지만 가능한 경우에도 시나리오 (원래 게시물에 증상이 표시됨)는 거의 없습니다. 방화벽 규칙 등이있을 수 있습니다.이를 달성하는 방법은 여러 가지가 있지만 가능성은 다릅니다…
Michael Krelin-해커

항상 그런 의미는 아닙니다. 내 my.cnf파일에 줄 bind-address이나 skip-networking줄 이 없지만 같은 오류가 발생합니다. 방화벽도 설치되어 있지 않습니다. 아이디어가 부족합니다.
Deleet

글쎄, 111은 항상 연결이 거부되었음을 의미합니다. 귀하의 사례에 대한 자세한 내용을 제공하면 도와 드릴 수 있습니까? 또한 현재 시스템에 따라 구성이 여러 파일에 분산되어있을 수 있습니다.
Michael Krelin-해커

10

이전의 모든 답변으로 해결책을 찾지 못한 경우 사용자 권한을 확인해야합니다.

로그인 할 수 있다면 rootmysql에 다음을 추가해야합니다.

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

그런 다음을 사용하여 다시 연결해보십시오 mysql -ubeer -pbeer -h192.168.1.100. 작동해야합니다.


17
사용자 권한 관련 오류로 인해 오류 111이 발생한다고 생각하지 않습니다.
ufk

1
실제로 작동했으며 111 오류가 발생했습니다.
Borjante

이것은 127.0.0.1 줄을 주석 처리하여 전체 네트워크에 mysql을 여는 것보다 더 나은 솔루션 인 것 같습니다. 최상의 솔루션이어야합니다.
nyxee

7

cPanel / WHM을 실행중인 경우 방화벽에 IP가 허용 목록에 있는지 확인하십시오. 연결하려는 cPanel 계정의 원격 SQL IP 목록에 해당 IP를 추가해야합니다.


1
방화벽이 오류를 일으키는 지 확인하기에 좋은 "알기"는 오류가 반환되는 데 꽤 오랜 시간이 걸린다는 것입니다. MySQL이 문제를 일으키는 경우 응답은 거의 즉각적입니다.
...

이것이 어떻게 수행되는지 설명 할 수 있습니까?
사용자
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.