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