원격 시스템에서 MySQL 서버에 액세스 할 수 없음


14

로컬 Ubuntu 서버 (11.10)에 MySQL 서버를 설치했습니다. 원격 컴퓨터에서 서버에 연결할 수 없습니다.

내가 시도했을 때 : nmap localhost , 그것은 다음을 보여줍니다

항만국 서비스
22 / TCP 오픈 SSH
80 / tcp 공개 http
139 / tcp 개방형 netbios-ssn
445 / TCP Open Microsoft-DS
631 / TCP 오픈 IPP
3306 / TCP 오픈 MySQL

그것은 3306MySQL 포트가 열려 있다는 것을 의미합니다 . 그러나 nmap 192.168.0.50서버 IP 인을 시도 하면 다음과 같은 결과가 나타납니다.

항만국 서비스
22 / TCP 오픈 SSH
80 / tcp 공개 http
139 / tcp 개방형 netbios-ssn
445 / TCP Open Microsoft-DS

이것은 IP를 사용하여 액세스 할 때 포트가 열리지 않았 음을 의미합니까? 그렇다면 포트를 어떻게 열 수 있습니까?

다음 코드를 시도했지만 작동하지 않는 것 같습니다.

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

여기서 무엇이 잘못 되었습니까?

답변:


22

MySQL 서비스는 로컬 호스트 만 제공하도록 바인딩되어 있습니다 (인터페이스 바인딩). 보안상의 이유로 이것이 기본값입니다. 다른 호스트에서 직접 액세스 해야하는 경우 우분투에서 MySQL에 대한 원격 액세스를 활성화 하는 좋은 방법이 있습니다 .

  1. 다른 시스템에서 다른 것으로 발견 된 것처럼 루트로 /etc/mysql/my.cnf또는 /etc/mysql/mysql.conf.d/mysqld.cnf좋아하는 편집기를 사용하여 엽니 다 .
  2. [mysqld]섹션을 찾고 거기에서 bind-address키워드를 찾으십시오 . 일반적으로 127.0.0.1"일반"IP 주소와 일치하도록 변경합니다.
  3. 파일을 저장하고 (예를 들어, 사용하여 서비스를 다시로드 service mysql restart)

적절한 GRANT를 설정하여 원격 사용자가 원격에서 데이터베이스에 액세스 할 수 있도록해야합니다.

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

참고 @'%'"모든 호스트에서"어떤 수단.


다행입니다. 천만에요!
Izzy

링크가 끊어졌습니다 :(
dino

2
@dino 더 이상. 나는 그것을 고쳤고 발췌도 포함 했으므로 다시 죽으면 필요한 단계가 여전히 있습니다. 나의 나쁜 나는 처음부터 그렇게하지 않았다. 그러나 타임 스탬프에서 볼 수 있듯이, 그것은 나의 초기 답변 중 하나였다. 우리 모두 배운다 :)
Izzy

2
바인드 주소 필드가 /etc/mysql/mysql.conf.d/mysqld.cnf내 시스템에 있습니다.
Eric G

@EricG 포인터 주셔서 감사합니다. 내 대답은 5 년 전 이었으므로 구성이 약간 변경되었습니다 (아마도 모듈화되었습니다).
Izzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.