서버에 OpenVPN 서버를 설치했습니다. OpenVPN 서버에 연결하기 위해 클라이언트를 사용하는 대신 mysql 클라이언트를 사용하여 OpenVPN 서버에서 MySQL 서버로 연결하려고 합니다. 문제 없이 서버 간에 핑을 주고받을 수 있습니다. 그러나 OpenVPN 서버에서 MySQL 클라이언트를 사용하여 MySQL 서버에 연결하려고 하면 다음과 같은 메시지가 나타납니다.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.6' (111)
10.8.0.6은 10.8.0.1에 있는 OpenVPN 서버에 연결됩니다.
IPTable일 수도 있다고 생각했지만 클라이언트와 서버 모두에 명시적인 INPUT 및 OUTPUT을 추가해도 아무 것도 변경되지 않았습니다. Telnet 10.8.0.6 3306도 작동하지 않습니다. MySQL이 3306에서 실행되고 있음을 확인했습니다.
me@db:~# lsof -i4 -P | grep -i mysql
mysqld 6192 mysql 10u IPv4 40596 0t0 TCP localhost:3306 (LISTEN)
그럼 내가 뭘 잘못하고 있는 걸까요? Google은 별로 도움이 되지 않았으며 내가 아는 한 작동해야 합니다.
답변1
MySQL 서버는 localhost(127.0.0.1)만 수신하므로 다른 서버에서는 연결할 수 없습니다. 이는 명시적으로 허용하지 않는 한 다른 컴퓨터가 MySQL에 연결하는 것을 방지하는 기본 "보안" 설정입니다.
my.cnf 파일(아마도 /etc/my.cnf에 있음)을 편집하고 바인드 주소를 127.0.0.1에서 다음 중 하나로 변경합니다.
- MySQL 서버의 IP 주소
- 0.0.0.0서버에 구성된 모든 IPv4 주소를 수신합니다.
- ::모든 IPv4 및 IPv6 주소를 수신합니다.
http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_bind-address