MySQL 5.7 바인드 주소가 작동하지 않습니다


17

MySQL 5.5에 대한 원격 연결을 항상 성공적으로 설정했습니다.

오늘은 Ubuntu 16.04 및 MySQL 5.7을 사용하여 새 서버를 설치했습니다. 그러나 어떤 이유로 든이 MySQL 설치가 다른 호스트를 청취 할 수는 없지만 127.0.0.1.

여기 내 /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

원격 호스트 에서이 MySQL 서버에 연결할 수 없었고 내를 확인했을 때 netstatMySQL이 연결 localhost만 수신한다는 것을 깨달았습니다 .

lsof -Pni :3306 출력은 다음과 같습니다

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

무엇이 문제입니까?


mysql을 바운스 했습니까? netstat -lntp의 결과는 무엇입니까?
Linuxx

@Linuxx 나는 심지어 전체 머신을 재시작했다. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast

해당 파일에 해당 줄을 추가했다고 가정합니다. 해당 줄을 제거하고 /etc/mysql/mysql.conf.d/mysqld.cnf 파일을 편집하고 거기에서 매개 변수를 변경하십시오.
Linuxx

1
@Linuxx 이것은 마술처럼 작동했습니다 :) 또 다른 * .conf.d 디렉토리가 있음을 알지 못했습니다. 따라서 기본적으로 5.7은 [mysql] 구성을 conf.d 디렉토리에 유지하고 [mysqld] 구성은 mysql.conf.d에 유지합니다. 감사합니다! 답변을 부탁드립니다. 수락하겠습니다.
하였느냐

1
/etc/mysql/mysql.conf.d/mysqld.cnf 및 /etc/mysql/conf.d/mysql.cnf에서 bind-address를 변경했지만 서버에서 다시 시작했지만 여전히 "tcp 0 0 127.0이 표시됩니다. 0.1 : 3306 "나는 <NETSTAT -tulpen 실행
Chepech

답변:


39

바인드 매개 변수가 /etc/mysql/mysql.conf.d/mysqld.cnf에 있도록 MySQL 패키지를 변경했습니다. 바인드 매개 변수를 변경하고 /etc/mysql/conf.d/mysql.cnf에 배치 한 것을 제거하십시오.


그러나 이것은 우스운 일입니다. "conf.d"의 목적은 패키지 제공 기본값을 편집하지 않고 자신의 구성으로 재정의하는 것입니다. 그러나 지금 "mysql.conf.d"가 우리를 덮어 쓰고 있기 때문에 "mysql.conf.d / mysqld.cnf"를 편집하지 않으면 우리가 마지막에 올 수있는 확실한 방법이 없습니다.
kenn

@kenn : 대신 mysql.conf.d /에 설정을 추가하고 이름을 "x-something"으로 지정하십시오.
Bell

3
물론 "conf.d"의 요점은 무엇입니까? "mysql.conf.d"가 패키지 제공 기본값으로 "conf.d"로 덮어 써지지 않습니까? MySQL 패키지 레벨의 "/etc/mysql/my.cnf"에서 "conf.d"및 "mysql.conf.d"의로드 순서를 바꿔야한다고 생각합니다.
kenn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.