


Bagaimana untuk menyediakan persekitaran replikasi master-hamba MySQL?
Jun 27, 2025 am 01:52 AMUntuk menubuhkan replikasi master-hamba MySQL, mula-mula pastikan kedua-dua pelayan siap dengan mengesahkan keserasian versi, sambungan rangkaian, IP statik, dan port firewall buka. Kemudian konfigurasikan pelayan induk dengan membolehkan pembalakan binari dan menetapkan ID pelayan yang unik, diikuti dengan membuat pengguna replikasi khusus. Seterusnya, jadual kunci buat sementara waktu dan rekod kedudukan log binari. Pada pelayan hamba, tetapkan ID pelayan yang berbeza dan aktifkan pembalakan relay, kemudian gunakan maklumat yang direkodkan untuk menyambung ke tuan dan mulakan benang hamba. Akhirnya, pastikan konsistensi data dengan menyalin data sedia ada dari Master kepada hamba menggunakan MySqldump atau Percona XTrabackup sebelum memulakan replikasi.
Menyediakan persekitaran replikasi master-hamba MySQL adalah cara yang kukuh untuk meningkatkan ketersediaan pangkalan data, redundansi, dan prestasi. Pada terasnya, ia membolehkan anda menyalin data dari satu pelayan MySQL (tuan) kepada yang lain (hamba), jadi hamba mencerminkan data induk dalam masa nyata.
Inilah caranya untuk melakukannya dengan betul tanpa terjebak pada perangkap biasa.
Pastikan kedua -dua pelayan sudah siap
Sebelum menyelam ke dalam konfigurasi, sahkan bahawa kedua -dua pelayan tuan dan hamba anda menjalankan versi yang serasi MySQL. Idealnya, mereka harus berada pada versi yang sama atau sekurang -kurangnya versi kecil yang tidak memperkenalkan perubahan pecah.
Juga:
- Pastikan sambungan rangkaian antara kedua -dua pelayan
- Tetapkan IP Statik untuk kedua -duanya jika boleh
- Gunakan pengguna replikasi yang berdedikasi kemudian - tetapi pertama, dapatkan semua yang lain siap
Satu titik yang sering diabaikan: periksa tetapan firewall anda. Hamba perlu menyambung ke tuan pada port 3306 (atau apa -apa port anda menggunakan contoh MySQL anda). Sekiranya terdapat firewall di antara, pastikan pelabuhan dibuka.
Konfigurasikan pelayan induk
Anda perlu mengaktifkan pembalakan binari dan menetapkan ID pelayan yang unik. Tetapan ini masuk dalam fail konfigurasi MySQL anda ( my.cnf
atau my.ini
, bergantung kepada OS anda).
Tambahkan baris ini di bawah bahagian [mysqld]
:
pelayan-id = 1 log-bin = mysql-bin
Setelah menyimpan konfigurasi, mulakan semula perkhidmatan MySQL:
sudo systemctl mulakan semula mysql
Kemudian buat pengguna replikasi khusus:
Buat pengguna 'replica_user'@'%' yang dikenal pasti oleh 'your_password'; Memberikan hamba replikasi pada *. * Ke 'replica_user'@'%'; Keistimewaan siram;
Sekarang kunci jadual sementara dan dapatkan kedudukan log binari:
Jadual siram dengan kunci baca; Tunjukkan status induk;
Ambil perhatian File
dan nilai Position
- anda akan menggunakannya semasa menubuhkan hamba.
Konfigurasikan pelayan hamba
Pada hamba, edit konfigurasi MySQL sekali lagi dan tetapkan:
pelayan-id = 2 Relay-Log = MySQL-Relay-Bin
Mulakan semula MySQL di sini juga.
Seterusnya, beritahu hamba bagaimana untuk menyambung ke tuan menggunakan maklumat dari sebelumnya:
Tukar Master ke Master_host = 'master_server_ip', Master_user = 'replica_user', Master_password = 'your_password', Master_log_file = 'recorded_log_file_name', Master_log_pos = recorded_position;
Setelah itu selesai, mulakan benang hamba:
Mula hamba;
Jalankan arahan ini untuk mengesahkan semuanya kelihatan baik:
Tunjukkan status hamba \ g
Semak bahawa kedua -dua Slave_IO_Running
dan Slave_SQL_Running
adalah "ya", dan tidak ada kesilapan yang disenaraikan.
Mengendalikan konsistensi data sebelum replikasi bermula
Jika tuan sudah mempunyai data, anda perlu menyalinnya ke hamba sebelum memulakan replikasi. Jika tidak, hamba akan membuang kesilapan yang cuba memohon perubahan pada jadual yang hilang atau data yang tidak konsisten.
Cara paling mudah adalah dengan membuang sampah sementara meja dikunci:
mysqldump -u root -p -semua -data -master -data> dbdump.sql
Pindahkan fail dump ke hamba dan mengimportnya:
mysql -u root -p <dbdump.sql
Hanya selepas langkah ini anda perlu meneruskan dengan memulakan proses replikasi.
Satu lagi perkara yang perlu ditonton: Jika anda berurusan dengan pangkalan data yang besar, pertimbangkan untuk menggunakan alat seperti Percona Xtrabackup dan bukannya mysqldump untuk mengelakkan masa kunci yang panjang.
Itulah pada dasarnya bagaimana anda menyediakan persediaan replikasi master-hamba asas MySQL. Ia tidak terlalu kompleks, tetapi kesilapan kecil - seperti lupa untuk membuka meja atau mencampurkan ID pelayan - boleh menyebabkan jam debugging. Perhatikan balak dan semak semula setiap langkah.
Atas ialah kandungan terperinci Bagaimana untuk menyediakan persekitaran replikasi master-hamba MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Nama pengguna lalai MySQL biasanya 'root', tetapi kata laluan berbeza mengikut persekitaran pemasangan; Dalam beberapa pengagihan Linux, akaun root boleh disahkan oleh pemalam auth_socket dan tidak boleh log masuk dengan kata laluan; Apabila memasang alat seperti XAMPP atau WAMP di bawah Windows, pengguna root biasanya tidak mempunyai kata laluan atau menggunakan kata laluan biasa seperti root, mysql, dan lain -lain; Jika anda lupa kata laluan, anda boleh menetapkan semula dengan menghentikan perkhidmatan MySQL, bermula-Skip-Grant-Tables mod, mengemas kini jadual MySQL.user untuk menetapkan kata laluan baru dan memulakan semula perkhidmatan; Ambil perhatian bahawa versi MySQL8.0 memerlukan pemalam pengesahan tambahan.

GTID (Pengenal Transaksi Global) menyelesaikan kerumitan replikasi dan failover dalam pangkalan data MySQL dengan memberikan identiti unik kepada setiap transaksi. 1. Ia memudahkan pengurusan replikasi, secara automatik mengendalikan fail log dan lokasi, yang membolehkan pelayan hamba meminta urus niaga berdasarkan GTID yang dilaksanakan terakhir. 2. Pastikan konsistensi di seluruh pelayan, pastikan setiap transaksi digunakan hanya sekali pada setiap pelayan, dan elakkan ketidakkonsistenan data. 3. Meningkatkan kecekapan penyelesaian masalah. GTID termasuk nombor UUID pelayan dan siri, yang mudah untuk mengesan aliran transaksi dan mencari masalah dengan tepat. Ketiga -tiga kelebihan teras ini menjadikan replikasi MySQL lebih mantap dan mudah dikendalikan, meningkatkan kebolehpercayaan sistem dan integriti data.

Failover Perpustakaan Utama MySQL terutamanya termasuk empat langkah. 1. Pengesanan kesalahan: Secara kerap memeriksa proses perpustakaan utama, status sambungan dan pertanyaan mudah untuk menentukan sama ada ia adalah downtime, menyediakan mekanisme semula untuk mengelakkan salah laku, dan boleh menggunakan alat seperti MHA, Orchestrator atau yang disimpan untuk membantu dalam pengesanan; 2. Pilih Perpustakaan Utama Baru: Pilih Perpustakaan Hamba yang paling sesuai untuk menggantikannya mengikut Kemajuan Penyegerakan Data (SecondS_Behind_Master), integriti data binLog, kelewatan rangkaian dan keadaan beban, dan melakukan pampasan data atau campur tangan manual jika perlu; 3. Tukar Topologi: Titik perpustakaan hamba lain ke perpustakaan induk baru, laksanakan semula semula atau aktifkan GTID, kemas kini konfigurasi VIP, DNS atau proksi ke

Terdapat tiga cara untuk mengubah suai atau menetapkan semula kata laluan pengguna MySqlroot: 1. Gunakan perintah alteruser untuk mengubah suai kata laluan sedia ada, dan laksanakan pernyataan yang sepadan selepas log masuk; 2. Jika anda lupa kata laluan anda, anda perlu menghentikan perkhidmatan dan memulakannya dalam mod-SKIP-Grant-tables sebelum mengubah suai; 3. Perintah Mysqladmin boleh digunakan untuk mengubahnya secara langsung dengan mengubahnya. Setiap kaedah sesuai untuk senario yang berbeza dan urutan operasi tidak boleh merosakkan. Selepas pengubahsuaian selesai, pengesahan mesti dibuat dan perlindungan kebenaran mesti diberi perhatian.

Langkah-langkah untuk menyambung ke pangkalan data MySQL adalah seperti berikut: 1. Gunakan format perintah asas MySQL-U Username-P-H alamat host untuk menyambung, masukkan nama pengguna dan kata laluan untuk log masuk; 2. Jika anda perlu memasukkan pangkalan data yang ditentukan secara langsung, anda boleh menambah nama pangkalan data selepas arahan, seperti MySQL-Uroot-PmyProject; 3 Jika port bukan lalai 3306, anda perlu menambah parameter -P untuk menentukan nombor port, seperti MySQL-UROOT-P-H192.168.1.100-P3307; Di samping itu, jika anda menghadapi ralat kata laluan, anda boleh memasukkannya semula. Jika sambungan gagal, periksa rangkaian, firewall atau tetapan kebenaran. Jika pelanggan hilang, anda boleh memasang MySQL-Client di Linux melalui Pengurus Pakej. Menguasai arahan ini

ToalteralargeProductionTableWithoutLonglocks, useOnlineddltechniques.1) mengenal pasti Inslowson

InnoDB mengimplementasikan bacaan berulang melalui kunci MVCC dan GAP. MVCC menyedari bacaan yang konsisten melalui snapshots, dan hasil pertanyaan urus niaga tetap tidak berubah selepas pelbagai transaksi; Kunci jurang menghalang urus niaga lain daripada memasukkan data dan mengelakkan bacaan hantu. Sebagai contoh, urus niaga pertanyaan pertama mendapat nilai 100, Transaksi B diubahsuai kepada 200 dan dikemukakan, A masih 100 dalam pertanyaan lagi; Dan apabila melakukan pertanyaan skop, kunci jurang menghalang urus niaga lain daripada memasukkan rekod. Di samping itu, imbasan indeks bukan unik boleh menambah kunci jurang secara lalai, dan kunci utama atau pertanyaan setara indeks unik tidak boleh ditambah, dan kunci jurang boleh dibatalkan dengan mengurangkan tahap pengasingan atau kawalan kunci yang jelas.

Indexesinmysqlimprovequeryspeedbyenablingfasterdataretrieval.1.theyreducedAtascanned, membolehkanmysqltoquicklylocaterelevantrowsinwhereororderbyclauses, terutama sekalimortantforlargeorfrequeriedTables.2.theyspeedupjoinSoSdoSoBes.2
