내 Ubuntu 서버에서 포트 3306이 닫힌 것 같습니다

내 Ubuntu 서버에서 포트 3306이 닫힌 것 같습니다

나는 두 가지를 가지고 있습니다VPS서버이며 둘 다MySQL하나는 테스트용이고 하나는 개발용입니다. 내 서버 중 하나가 외부에서 연결하는 것을 허용하지 않습니다. 사용자와 함께;

'mytestuser'@'%'

에 따르면개방형 포트 찾기, 문제가 있는 서버의 포트 3306이 닫힌 것 같습니다. 아무런 문제 없이 임의의 포트에서 수신 대기하는 C++ 및 Java 프로그램이 있습니다. 왜 이런 일이 발생하며 어떻게 해결할 수 있나요?

설치된 Ubuntu는 Ubuntu 11.10(GNU/Linux 2.6.32-042stab072.10 x86_64)입니다.

netstat -tuple각 서버에서 의 결과

문제가 있는 서버

tcp        0      0 localhost.lo:submission *:*                     LISTEN      root       39967664    -

작동중인 서버

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -

답변1

문제는 서버가 내부적으로만 듣고 있다는 것이었습니다.

줄을 제거하면 bind-address 127.0.0.1문제 /etc/mysql/my.cnf가 해결되었습니다.

최신 버전의 Ubuntu(≥16.04)에는 /etc/mysql/mysql.conf.d/mysqld.cnf.

답변2

내 제안은 포트가 닫혀 있다고 확신하는 경우(VPS가 해당 포트를 닫는 것이 이상하다는 것을 알았습니다) 다른 것을 사용하도록 MySQL의 구성 파일을 변경하는 것입니다.

터미널에서 구성 파일을 열고 sudo nano /etc/mysql/mysql.conf해당 섹션을 찾으십시오 [mysqld]. 그 안에서 다음 줄을 찾으세요 port = 3306. 사용하지 않는 다른 포트로 변경하고 파일을 저장하세요.

그런 다음 VPS를 다시 시작하거나 sudo service mysql restart.

참고로, 파일이 mysql.conf위에서 언급한 파일에 없으면 다른 위치에 있을 수 있습니다.

/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf

명령 이 service작동하지 않으면 다음을 수행하십시오.

sudo /etc/init.d/mysql restart

문제가 지속되면 내 경우에는 확인하겠습니다.iptables(이것이 옵션일 수 있다면 새로 시작하기 위해 실제로 iptables의 모든 항목을 삭제할 것입니다.) 또는 다른 방화벽 활성화 옵션이 있습니다.

VPS이므로 VPS 제어판에도 포트를 차단할 수 있는 옵션이 있는지 확인하겠습니다.

그 외에도 nmapVPS를 실행하여 어떤 포트를 열었는지 확인합니다. 어떤 포트가 열려 있는지 확인하려면 VPS 외부에서 실행해야 합니다.

netstat -tuplen서버에 열려 있는 포트와 LISTEN 모드에 있는 포트를 확인하는 것도 좋은 생각입니다.

답변3

MySQL이 모든 포트에서 수신 대기하도록 in bind-address 127.0.0.1으로 변경하여 이 문제를 해결했습니다 .bind-address 0.0.0.0/etc/mysql/mysql.conf.d

또한 원격으로 사용할 mysql 사용자 계정을 설정했습니다. 자세한 내용은 다음을 참조하세요.호스트 'xxx.xx.xxx.xxx'는 이 MySQL 서버에 연결할 수 없습니다..

답변4

구성이 디렉토리에 있을 수 있습니다 /etc/mysql/mysql.conf.d/mysqld.cnf. 그렇지 않은지 확인하십시오.

관련 정보