Saat melakukan pengembangan, saya perlu menyinkronkan database MySQL. Kedua sistem memiliki instalasi yang sama, keduanya adalah FreeBSD5.4. Apache 2.0.55 dan PHP 4.4.0 diinstal .
1. Instal dan konfigurasikan
dua server. Instal MySQL secara terpisah dan instal di direktori /usr/local/MySQL (langkah-langkah instalasi dihilangkan, silakan merujuk ke dokumen terkait). .0.2 masing-masing kami menggunakan 192.168.0.1 sebagai database master dan 192.168.0.2 sebagai server budak. Kami menggunakan sinkronisasi satu arah, yaitu data master adalah data master, dan kemudian budak secara aktif pergi ke master untuk menyinkronkan data kembali.
Konfigurasi kedua servernya sama. Mari salin file konfigurasi kunci. File konfigurasi default ada di direktori /usr/local/MySQL/share/MySQL, yang mencakup my-large.cnf, my-medium.cnf, my -small.cnf dan penulis lain, kami hanya menguji, gunakan saja my-medium.cnf. Setelah MySQL diinstal, file konfigurasi default ditentukan di direktori penyimpanan database. Kami menggunakan 4.1.X, jadi file konfigurasi harus berada di direktori /usr/local/MySQL/var, jadi salin file konfigurasi di sana:
cp /usr/local/MySQL/share/MySQL/my-medium.cnf /usr/local/MySQL/var/my.cnf
Kedua server melakukan operasi penyalinan file konfigurasi yang sama.
2. Konfigurasikan server Master.
Kita perlu mengkonfigurasi 192.168.0.1 sebagai server MySQL utama (master). Kemudian kita harus mempertimbangkan database mana yang perlu kita sinkronisasi dan pengguna mana yang akan digunakan untuk sinkronisasi pengguna root untuk sinkronisasi di sini, dan Hanya database abc yang perlu disinkronkan.
Buka file konfigurasi:
vi /usr/local/MySQL/var/my.cnf
Temukan informasi ini:
# diperlukan id unik antara 1 dan 2^32 - 1# defaultnya adalah 1 jika master-host tidak disetel# tetapi tidak akan berfungsi sebagai master jika dihilangkanserver-id = 1 //1 adalah master, 2 adalah salep
Tambahkan dua baris:
sql-bin-update-same //Formulir sinkronisasi binlog-do-db = abc //Database yang akan disinkronkan
Mulai ulang server MySQL di 192.168.0.1:
/usr/local/MySQL/bin/MySQLadmin dimatikan /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
3. Konfigurasikan server Budak.
Server budak kami terutama mengambil inisiatif untuk menyinkronkan data kembali ke server master.
vi /usr/local/MySQL/var/my.cnf
Temukan informasi serupa di bawah ini:
# diperlukan id unik antara 1 dan 2^32 - 1# defaultnya adalah 1 jika master-host tidak disetel# tetapi tidak akan berfungsi sebagai master jika dihilangkanserver-id = 1
Ubah server-id di atas menjadi 2 dan tambahkan beberapa informasi:
server-id = 2 //MySQL ini adalah server slave master-host = 192.168.0.1 //IP dari server master master-user = root //Pengguna yang terhubung ke server master master-password = '' / /Kata sandi untuk menghubungkan ke server master master -port = 3306 //Menghubungkan port master-connect-retry = 10 //Jumlah percobaan ulang replica-do-db = abc //Database yang akan disinkronkan pembaruan log-slave // Formulir sinkronisasi
Mulai ulang server MySQL di 192.168.0.2:
/usr/local/MySQL/bin/MySQLadmin dimatikan /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
4. Untuk menguji instalasi,
periksa dulu log host slave:
cat /usr/local/MySQL/var/xxxx_err (xxx adalah nama host)
Periksa apakah koneksi normal. Jika Anda melihat pesan seperti ini, Anda berhasil.
051031 11:42:40 MySQLd dimulai051031 11:42:41 InnoDB: Dimulai; mencatat nomor urut 0 43634/usr/local/MySQL/libexec/MySQLd: siap untuk koneksi. Versi: '4.1.15-log' socket: '/ tmp/MySQL.sock' port: 3306 Distribusi sumber051031 11:42:41 [Catatan] Thread SQL budak diinisialisasi, memulai replikasi di log 'PERTAMA' di posisi 0, log relai './new4-relay-bin.000001' posisi: 4051031 11:43:21 [Catatan] Utas I/O budak: terhubung ke master '[email protected]:3306' , replikasi dimulai di log 'PERTAMA' di posisi 4
Lihat informasi tentang Guru
/usr/local/MySQL/bin/MySQL -u root
Lihat status utama:
MySQL> tampilkan status master;
Periksa informasi proses MySQL di bawah Master:
MySQL> tampilkan daftar proses;
Lihat informasi tentang budak:
/usr/local/MySQL/bin/MySQL -u root
Lihat status budak:
MySQL> tampilkan status budak;
Periksa informasi proses MySQL di bawah budak:
MySQL> tampilkan daftar proses;
Anda kemudian dapat membuat struktur tabel di perpustakaan abc master dan memasukkan data, lalu memeriksa apakah budak telah menyinkronkan data, dan Anda dapat memeriksa apakah pengaturan berhasil.
Terakhir, jika Anda tertarik, Anda dapat mempelajari hot backup klik dua kali, atau implementasi sinkronisasi satu master dan beberapa slave.