Terkadang Anda mungkin perlu menjalankan beberapa instance MySQL di satu server. Misalnya, Anda mungkin perlu menguji instance MySQL yang berbeda untuk staging, testing, dan produksi. Pada artikel ini, kita akan melihat cara menjalankan beberapa instance MySQL pada mesin yang sama, tetapi port yang berbeda, dengan file logging dan parameter konfigurasi yang berbeda.
Cara Menjalankan Beberapa Instance MySQL pada Mesin yang Sama
Berikut adalah langkah-langkah untuk menjalankan beberapa instance MySQL pada mesin yang sama.
1. Buka file konfigurasi MySQL
Biasanya, Anda akan menemukan file konfigurasi MySQL di /etc/mysql/my.cnf . Buka terminal dan jalankan perintah berikut untuk membuka file konfigurasi MySQL.
$ sudo vi /etc/mysql/my.cnf
2. Konfigurasikan beberapa instance MySQL
Anda akan menemukan konfigurasi default MySQL yang mirip dengan yang ditunjukkan di bawah ini.
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
Copy+Paste blok kode di atas di bawahnya dalam file yang sama. Ganti [mysqld] dengan [mysqld1] dan ubah nilai port menjadi 3307. Ini akan membuat instance baru mysqld1 dijalankan pada port 3307 yang berbeda dengan nama proses yang berbeda mysqld1. Demikian pula, ubah nama file variabel pid-file, socket dan datadir dengan seperti yang ditunjukkan di bawah ini.
Pastikan menyalin folder datadir untuk setiap instance di bawah ini. Pastikan juga bahwa pengguna mysql pengguna memiliki izin akses untuk itu. Setiap instance membutuhkan direktori datanya sendiri.
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
Sekarang mysqld1 akan dijalankan sebagai instance terpisah dari mysqld
Demikian pula, Anda dapat membuat lebih banyak instance seperti yang ditunjukkan di bawah ini
[mysqld2] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3308 datadir = /data/mysql/mysql2 .... [mysqldN] user = mysql pid-file = /var/run/mysqld/mysqldN.pid socket = /var/run/mysqld/mysqldN.sock port = N datadir = /data/mysql/mysqlN
Pastikan Anda menyediakan file pid, file soket, dan direktori data yang berbeda untuk setiap instance dan pastikan bahwa pengguna mysql memerlukan izin direktori karena mysql pengguna harus dapat membuat file dan direktori yang diperlukan.
3. Kelola beberapa instance
Anda dapat memulai setiap instance secara terpisah menggunakan mysqld perintah di bawah ini. Ganti mysqlN dengan contoh pilihan Anda (mis. mysql1, mysql2, dll)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
Jika karena alasan tertentu, konfigurasi di atas tidak bekerja untuk Anda, salin file my.cnf ke /etc/my.cnf lokasi dan coba lagi. Terkadang, mysql tidak mendaftarkan beberapa instance yang dikonfigurasi di /etc/mysql/my.cnf
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
Jika Anda ingin masuk ke instance tertentu (misalnya mysqld1) dari baris perintah, Anda perlu menentukan lokasi file soketnya dengan opsi -S. Jika tidak, Anda akan masuk ke instance MySQL default.
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
Semoga artikel ini membantu Anda mengonfigurasi dan mengelola beberapa instance MySQL di server yang sama.
Butuh alat pelaporan untuk MySQL? Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!