Поиск по сайту:

Как изменить порт MySQL/MariaDB по умолчанию в Linux


В этом руководстве мы узнаем, как изменить порт по умолчанию, к которому привязывается база данных MySQL/MariaDB в дистрибутивах Linux на базе CentOS 7 и Debian. Порт по умолчанию, на котором сервер базы данных MySQL работает под Linux и Unix, — 3306/TCP.

Чтобы изменить порт базы данных MySQL/MariaDB по умолчанию в Linux, откройте файл конфигурации сервера MySQL для редактирования, введя приведенную ниже команду.

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

Поиск статистики строки начинается с [mysqld] и поместите следующую директиву порта в оператор [mysqld], как показано в приведенных ниже выдержках из файла. Замените переменную порта соответствующим образом.

[mysqld] 
port = 12345

После добавления нового порта MySQL/MariaDB сохраните и закройте файл конфигурации и установите следующий пакет в CentOS 7, чтобы применить необходимый SELinux. правила, позволяющие базе данных привязываться к новому порту.

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 с учетной записью root и выполнив следующую команду. Однако имейте в виду, что все соединения с MySQL на локальном хосте выполняются через сокет домена MySQL unix, а не через сокет TCP. Но номер TCP-порта должен быть явно указан в случае удаленного подключения к базе данных MySQL из командной строки с использованием флага -P.

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

В случае удаленного подключения к базе данных MySQL пользователь root должен быть явно настроен на разрешение входящих подключений из всех сетей или только по IP-адресу, выполнив следующую команду в консоли MySQL:

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-порту, чтобы удаленные клиенты могли успешно подключаться к базе данных.