웹사이트 검색

Linux에서 기본 MySQL/MariaDB 포트를 변경하는 방법


이 가이드에서는 CentOS 7Debian 기반 Linux 배포판에서 MySQL/MariaDB 데이터베이스가 바인딩하는 기본 포트를 변경하는 방법을 알아봅니다. Linux 및 Unix에서 MySQL 데이터베이스 서버가 실행되는 기본 포트는 3306/TCP입니다.

Linux에서 기본 MySQL/MariaDB 데이터베이스 포트를 변경하려면 아래 명령을 실행하여 편집할 MySQL 서버 구성 파일을 엽니다.

vi /etc/my.cnf.d/server.cnf                   [On CentOS/RHEL]
vi /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu] 

stat가 [mysqld]로 시작하는 행을 검색하고 아래 파일 발췌에 표시된 대로 [mysqld] 문 아래에 다음 포트 지시문을 배치합니다. 이에 따라 포트 변수를 바꾸십시오.

[mysqld] 
port = 12345

MySQL/MariaDB 포트를 추가한 후 필수 SELinux를 적용하려면 구성 파일을 저장하고 닫은 후 CentOS 7 아래에 다음 패키지를 설치하세요. 데이터베이스가 새 포트에 바인딩되도록 허용하는 규칙입니다.

yum install policycoreutils-python

그런 다음, 아래의 SELinux 규칙을 추가하여 새 포트에 MySQL 소켓을 바인딩하고 데이터베이스 데몬을 다시 시작하여 변경 사항을 적용합니다. 다음 명령을 실행하세요. 다시 한번, MySQL 포트 변수를 자신의 포트 번호와 일치하도록 바꾸십시오.

--------------- On CentOS/RHEL --------------- 
semanage port -a -t mysqld_port_t -p tcp 12345
systemctl restart mariadb

--------------- On Debian/Ubuntu ---------------
systemctl restart mysql      [On Debian/Ubuntu]  

MySQL/MariaDB 데이터베이스 서버의 포트 구성이 성공적으로 적용되었는지 확인하려면 netstat 또는 ss 명령을 실행하고 grep 명령을 통해 결과를 필터링하여 쉽게 식별할 수 있습니다. 새로운 MySQL 포트.

ss -tlpn | grep mysql
netstat -tlpn | grep mysql

루트 계정으로 MySQL 데이터베이스에 로그인하고 아래 명령을 실행하여 새 MySQL 포트를 표시할 수도 있습니다. 그러나 localhost에서 MySQL에 대한 모든 연결은 TCP 소켓이 아닌 MySQL Unix 도메인 소켓을 통해 이루어집니다. 그러나 -P 플래그를 사용하여 MySQL 데이터베이스에 대한 명령줄 원격 연결의 경우 TCP 포트 번호를 명시적으로 지정해야 합니다.

mysql -h localhost -u root -p -P 12345
MariaDB [(none)]> show variables like 'port';

MySQL 데이터베이스에 대한 원격 연결의 경우 MySQL 콘솔에서 아래 명령을 실행하여 루트 사용자가 모든 네트워크 또는 IP 주소로부터 들어오는 연결을 허용하도록 명시적으로 구성해야 합니다.

mysql -u root -p
MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.1.159' identified by 'strongpass';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

아래 명령을 실행하여 새 포트의 명령줄 클라이언트를 통해 MySQL 서버에 원격으로 로그인합니다.

mysql -h 192.168.1.159 -P 12345 -u root -p  

마지막으로, MySQL/MariaDB 데이터베이스 서버 포트를 변경한 후에는 원격 클라이언트가 성공적으로 데이터베이스에 연결할 수 있도록 새 TCP 포트로 들어오는 연결을 허용하도록 배포 방화벽 규칙을 업데이트해야 합니다.