원격 연결을 허용하도록 MySql 서버를 설정하는 방법은 무엇입니까?


16

Ubuntu 데스크탑에 MySql 서버를 설치하고 있습니다. Server Hostnameas를 지정할 때 MySql Query Browser를 연결할 수 localhost있지만 시스템의 IP로 바꾸면 작동이 중지됩니다 (MySql Query Browser가 동일한 시스템에서 실행되는 경우에도).

내가 지금까지 한 일은 iptables를 제거하는 것이지만 그것과 관련이없는 것 같습니다.

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

호스트 '192.168.0.2'에 연결할 수 없습니다.

MySQL 오류 번호 2003 년

'192.168.0.2'에서 MySQL 서버에 연결할 수 없습니다 (111).

네트워크 문제가 있는지 확인하려면 'Ping'버튼을 클릭하십시오.

그래도 핑은 괜찮습니다

답변:


22

mysqld를 127.0.0.1과 다른 IP에 바인딩해야합니다.

my.cnf (일반적으로 /etc/mysql/my.cnf)를 열고 다음 행을 변경하십시오.

bind = 127.0.0.1

컴퓨터가 외부 세계에 연결하는 데 사용하는 모든 IP에. 0.0.0.0모든 IP 주소에 바인딩합니다. 변경 후 mysqld를 다시 시작하는 것을 잊지 마십시오.


다른 오류가 발생했습니다 : '192.168.0.2'호스트에 연결할 수 없습니다. MySQL 오류 번호 이 MySQL 서버에 접속 할 수 없습니다 '어떤-vubuntu.local'1130 호스트
데르 디아스

user @ localhost와 user @ <hostname>이 다릅니다. 원격 호스트에서 연결할 수 있으려면 사용자를 추가해야합니다.
James

이것은 문제가 아닙니다. 나는 이것을했고 여전히 오류가 발생합니다.
Cerin

그럴까요 bind-address?
Thomas Weller


2

여기에 몇 가지 잠재적 인 문제가 설명되어 있습니다.

http://www.cyberciti.biz/tips/how-do-i-en-able-remote-access-to-mysql-database-server.html http://dev.mysql.com/doc/refman/5.1/ko /access-denied.html

모든 데이터베이스에 모든 권한을 부여하려면 다음을 시도하십시오

grant all on *.* to 'joe'@'%';

그러나 그렇게하기 전에, "호스트"가 IP 주소로 설정된 "mysql"데이터베이스에 사용자가 있는지 확인하십시오. 따라서 사용자 "joe"는 전화를 건 각 IP마다 하나씩 두 개 이상의 레코드를 가질 수 있습니다. 이미 가지고있는 것을 보려면 :

use mysql;
select Host, User, Password from user where user='joe';`

제 경우에는 사용자에게 올바른 IP가 있지만 암호도 누락되었습니다. 암호를 잘라 붙여 넣었습니다 (해시 또는 다른 것). 내 특정 원격 연결 문제가 해결되었습니다.

update user set Password='5493845039485' where user='joe';

한 가지 더, my.cnf에서 "port = 3306"또는 사용하려는 포트를 설정하고 싶을 수도 있습니다.

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