mariadb 감청되지 않은 TCP 3306 문제 해결

1675 단어
이전에 서버를 통해 로컬로mariadb 데이터베이스에 접근했을 때 아무런 문제가 없었는데 오늘부터 원격으로mariadb 데이터베이스에 로그인하려고 시도했는데 로그인 실패를 발견했습니다.그리고 TCP가 세 번이나 악수를 했고 클라이언트가 보낸syn 메시지에 서버 측이 응답하지 않았다.서버에 로그인하여 포트의 개방 상황을 보니 3306 포트가 tcp6에 걸려 있어 IPv6는 서버의 3306 포트에 접근할 수 있고 IPv4는 접근할 수 없다.
[root@server]# netstat -anplt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      32513/mysqld  

인터넷에서 뒤져봤는데 보통 skip-networking, 또는bind-address 문제 때문에 제 mariadb 버전은 다음과 같습니다. /etc/my.cnf 파일을 봤는데 이 두 문자열과 관련된 줄이 없습니다.
[root@server]# mysql -V
mysql  Ver 15.1 Distrib 10.4.6-MariaDB, for Linux (x86_64) using readline 5.1

[root@server]# vi /etc/my.cnf

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

  는 /etc/my.cnf 파일에 skip-networking 을 추가하고 mysql 프로세스를 다시 시작한 후 3306이 열리지 않는 것을 발견하여 이 주석을 달았습니다.
[root@server]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service

   다시 /etc/my.cnf 파일에 추가bind-address=0.0.0.0를 시도하고 mysql 프로세스를 다시 시작하면 3306 TCP 뒤에 있는 TCP6 3306 항목이 사라집니다. 이때 원격 데이터베이스에 로그인하는 것이 정상입니다.
[root@server]# netstat -anplt
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      548/mysqld     

좋은 웹페이지 즐겨찾기