Apakah Anda tahu 'cara Debian' untuk mengatur beberapa instance MySQL pada satu server? Server akan menerima data yang direplikasi dari beberapa basis data jarak jauh.
Saya dapat menggunakan skrip seperti mysqlsandbox tetapi saya lebih suka tetap menggunakan paket Debian dan ingin dapat memutakhirkan pengaturan tanpa banyak kesulitan di masa depan. Solusi lain adalah mysqlmanager - ini bekerja dengan MySQL 5.1 tetapi sudah usang dan tidak dirilis lagi dengan 5.5.
Jadi apa 'praktik terbaik' dari menjalankan beberapa instance MySQL pada satu server Debian?
Jawaban:
Saya percaya ini sesederhana menjalankan
mysqld_multi
dan mengatur my.cnf Anda dengan benar.mysqld_multi
adalah bagian dari distribusi mysql - bukan embel-embel yang dikemas.Ada tambalan untuk membuat
/usr/share/mysql/mysqld_multi.server
sesuai untuk digunakan dalam/etc/init.d
dan tambalan lain untukmysqld_multi
menggunakan file dalam/etc/mysql/conf.d
.Anda dapat menginisialisasi direktori data MySQL untuk instance baru dengan
mysql_install_db
perintah seperti ini:Jangan lupa untuk mengubah kata sandi root dari instance yang baru dibuat:
sumber
Pada Debian 8, Anda dapat menggunakan mekanisme Systemd: tidak perlu lagi
mysqld_multi
.CATATAN: Saya menggunakan versi MariaDB! Tidak yakin apakah itu berfungsi dengan paket MySQL 'klasik'.
Dari
/lib/systemd/system/[email protected]
:Jadi, buat file
/etc/mysql/conf.d/myserver2.cnf
, dan tentukan di dalamnya file pid / socket / datadir baru dan port jaringan:EDIT: hati-hati bahwa contoh MySQL pertama tidak membaca file konfigurasi ini, dengan
!includedir /etc/mysql/conf.d/*
di bagian bawah/etc/mysql/my.cnf
. Jika demikian, ganti!includedir
dengan a!include
dari setiap file konfigurasi LAIN DARI myserver2.cnf:MySQL resmi doc menunjukkan Anda harus nama
[mysqld]
sebagai[mysqld@server2]
( https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html#systemd-multiple-mysql-instances ) tapi ini tidak bekerja dengan MariaDB . Jadi biarkan saja[mysqld]
.Sebelum memulai daemon baru, jangan lupa untuk membuat datadir dan file yang dibutuhkan:
Juga memuat kembali konfigurasi daemon systemd:
Dan jika Anda ingin memulai daemon ini saat boot:
Untuk memulainya:
sumber
/etc/my.cnf
, itu sebabnya.!includedir /etc/mysql/conf.d/*
. Untuk keamanan yang lebih baik, saya memasukkan setiapconf.d
file secara manual