Cara Mengubah Port MySQL/MariaDB Default di Linux


Dalam panduan ini kita akan mempelajari cara mengubah port default yang diikat database MySQL/MariaDB di distribusi Linux berbasis CentOS 7 dan Debian. Port default yang dijalankan server database MySQL di Linux dan Unix adalah 3306/TCP.

Untuk mengubah port database MySQL/MariaDB default di Linux, buka file konfigurasi server MySQL untuk diedit dengan mengeluarkan perintah di bawah ini.

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

Cari baris stat yang dimulai dengan [mysqld] dan letakkan direktif port berikut di bawah pernyataan [mysqld], seperti yang ditunjukkan pada kutipan file di bawah ini. Ganti variabel port yang sesuai.

[mysqld] 
port = 12345

Setelah Anda menambahkan port MySQL/MariaDB baru, simpan dan tutup file konfigurasi dan instal paket berikut pada CentOS 7 untuk menerapkan SELinux yang diperlukan aturan untuk mengizinkan database mengikat port baru.

yum install policycoreutils-python

Selanjutnya, tambahkan aturan SELinux di bawah ini untuk mengikat soket MySQL pada port baru dan memulai ulang daemon database untuk menerapkan perubahan, dengan mengeluarkan perintah berikut. Sekali lagi, ganti variabel port MySQL agar sesuai dengan nomor port Anda.

--------------- 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]  

Untuk memverifikasi apakah konfigurasi port untuk server basis data MySQL/MariaDB telah berhasil diterapkan, keluarkan perintah netstat atau ss dan filter hasilnya melalui perintah grep agar mudah diidentifikasi port MySQL baru.

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

Anda juga dapat menampilkan port MySQL baru dengan masuk ke database MySQL dengan akun root dan mengeluarkan perintah di bawah ini. Namun perlu diketahui bahwa semua koneksi ke MySQL di localhost dilakukan melalui soket domain unix MySQL, bukan melalui soket TCP. Namun nomor port TCP harus ditentukan secara eksplisit jika ada koneksi jarak jauh baris perintah ke database MySQL menggunakan flag -P.

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

Dalam kasus koneksi jarak jauh ke database MySQL, pengguna root harus dikonfigurasi secara eksplisit untuk mengizinkan koneksi masuk dari semua jaringan atau hanya alamat IP, dengan mengeluarkan perintah di bawah ini di konsol 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

Masuk ke server MySQL dari jarak jauh melalui klien baris perintah pada port baru dengan mengeluarkan perintah di bawah ini.

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

Terakhir, setelah Anda mengubah port server database MySQL/MariaDB, Anda perlu memperbarui aturan Firewall distribusi Anda untuk mengizinkan koneksi masuk ke port TCP baru sehingga klien jarak jauh dapat berhasil terhubung ke database.