Kebanyakan orang menjalankan satu server MySQL pada mesin yang ditunjuk, namun ada situasi di mana menjalankan beberapa server bermanfaat: Anda dapat menguji versi server baru dengan server produksi yang berjalan. Dalam hal ini, server lain akan berjalan.
Sistem operasi biasanya menerapkan batasan proses keseluruhan pada jumlah deskriptor untuk file yang terbuka. Jika sistem Anda mengalami kesulitan dalam menaikkan batas, menjalankan beberapa server adalah solusinya (misalnya, menaikkan batas mungkin memerlukan kompilasi ulang kernel, dan jika mesin berada di luar yurisdiksi Anda, Anda mungkin belum dapat melakukannya). Dalam skenario ini, Anda mungkin menjalankan beberapa contoh dari server yang sama.
Layanan Internet sering kali menyediakan instalasi MySQL sendiri kepada pelanggan, yang memerlukan server terpisah. Dalam hal ini, Anda mungkin menjalankan beberapa instance dari server yang sama atau server yang berbeda jika pelanggan yang berbeda memerlukan versi MySQL yang berbeda.
Tentu saja, menjalankan beberapa server secara bersamaan lebih rumit daripada menjalankan hanya satu server. Jika Anda berencana memasang beberapa versi, Anda tidak dapat memasang semuanya di lokasi yang sama. Saat server berjalan, parameter tertentu harus unik untuk setiap server. Beberapa parameter ini mencakup lokasi server diinstal: nama jalur ke direktori data, port TCP/IP dan nama jalur soket domain UNIX, dan akun UNIX yang digunakan untuk menjalankan beberapa server (jika tidak berjalan semuanya dalam server akun yang sama). Jika Anda memutuskan untuk menjalankan beberapa server, Anda harus menyimpan deskripsi yang baik tentang parameter yang Anda gunakan sehingga Anda tidak kehilangan jejak proses Anda.
Konfigurasikan dan instal beberapa server
Jika Anda berencana untuk menjalankan versi server yang berbeda daripada beberapa server yang sama, Anda harus menginstalnya di lokasi yang berbeda. Jika Anda menginstal paket distribusi biner (bukan RPM), paket tersebut akan diinstal dalam nama direktori yang berisi nomor versi. Jika menginstal dari distribusi sumber, cara termudah untuk memisahkan distribusi yang berbeda adalah dengan menggunakan opsi --with-prefix saat menjalankan konfigurasi pada setiap versi instalasi MySQL. Ini akan menghasilkan instalasi di direktori terpisah yang dapat dihubungkan ke nomor versi distribusi. Misalnya, Anda dapat mengonfigurasi paket distribusi MySQL sebagai berikut, dengan version adalah nomor versi MySQL:
% ./configure ..with-prefix=/usr/local/mysql-version
Opsi with-prefix juga akan menentukan direktori data unik server. Anda dapat menambahkan opsi untuk mengonfigurasi nilai khusus server lainnya, seperti port TCP/IP dan nama jalur soket (--with-tcp-port dan --with-unix-socket).
Jika Anda berencana menjalankan beberapa instance dari server yang sama, opsi apa pun yang spesifik untuk server tersebut perlu ditentukan saat runtime.
Proses startup beberapa server
Memulai beberapa server lebih rumit daripada menggunakan satu server karena safe_mysqld dan mysql.server bekerja dengan baik di satu server. Penulis menyarankan Anda mempelajari safe_mysqld dengan cermat dan menggunakannya sebagai dasar proses startup, kecuali Anda menggunakan salinan yang lebih terperinci yang dimodifikasi sesuai kebutuhan Anda.
Salah satu masalah yang harus ditangani adalah bagaimana menentukan opsi dalam file opsi. Dengan beberapa server, Anda tidak dapat menggunakan /etc/my.cnf untuk pengaturan yang berubah berdasarkan total server, hanya gunakan file ini untuk pengaturan yang sama untuk semua server. Jika setiap server memiliki lokasi direktori data yang berbeda, Anda dapat menentukan parameter khusus server di file my.cnf untuk setiap direktori data server. Dengan kata lain, gunakan /etc/my.cnf untuk pengaturan yang digunakan oleh semua server, dan DATA DIR/my.cnf untuk pengaturan khusus server, dimana DATADIR berubah untuk setiap server.
Cara lain untuk menentukan opsi server adalah dengan menggunakan - - defa ul ts - file =path_name sebagai opsi pertama pada baris perintah untuk memberitahu server agar membaca opsi dari file yang ditentukan oleh path_name. Dengan cara ini, opsi server dalam file tersebut dapat ditempatkan secara unik ke server tersebut dan kemudian memberitahu server untuk membaca file saat startup. Perhatikan bahwa jika opsi ini ditentukan, tidak ada file opsi biasa (seperti /etc/my.cnf) yang akan digunakan.