Rumah pangkalan data tutorial mysql MYSQL双主全库同步复制的示例详解

MYSQL双主全库同步复制的示例详解

May 10, 2018 pm 03:37 PM
mysql Contoh Penjelasan terperinci

环境:

A、B两台服务器分别安装mysql-5.7.18服务端,配置成互为主从同步。

linux系统版本为CentOS7

A服务器ip:192.168.1.7   主机名:test1

B服务器ip:192.168.1.8   主机名:test2

(同一局域网下)

一、准备

  1.修改主机名

   命令:hostnamectl  set-hostname  xxx

   (查看主机名 命令:hostname)

  2.关闭防火墙

   1)查看防火墙状态

    命令:firewall-cmd  --state

    结果:running

   2)防火墙是运行状态,先关闭防火墙服务

    命令:systemctl  mask  firewalld

   3)关闭防火墙

    命令:systemctl  stop  firewalld

   4)检查防火墙状态

    命令:firewall-cmd  --state

    结果:not  running

  3.关闭selinux策略

   1)查看selinux运行状态

    命令:getenforce

    结果:Enforcing

    

   2)永久性关闭(需重启电脑),编辑selinux文件vi  /etc/sysconfig/selinux修改SELINUX=disabled

    

   3)为关闭状态

    

二、配置主服务器(master)从服务器(slave)

  1.打开A服务器的my.cnf文件vi  /etc/my.cnf,在文件的[mysqld]下添加如下内容

   server-id=1       #必须与其他服务器不同,且必须为1~232之间的正整数值

log-bin=mysql-bin
   log-bin-index=mysql-bin
Salin selepas log masuk

   

   在B服务器my.cnf文件中的[mysqld]下添加上图内容,只更改server-id值即可。

server-id=2    
   log-bin=mysql-bin
   log-bin-index=mysql-bin
Salin selepas log masuk

  2.在A服务器中的mysql安装路径下(rpm安装路径为/var/lib/mysql)创建全库备份文件all.sql。

   创建命令:

touch  /var/lib/mysql/all.sql
Salin selepas log masuk

   备份命令:

[root@test1 mysql]# mysqldump -uroot -p123 --all-databases > /var/lib/mysql/all.sql
Salin selepas log masuk

   把all.sql文件拷贝到B服务器中的某个路径下(以/var/lib/mysql路径为例)进行恢复。

   恢复命令:

[root@test2 /]# mysql -uroot -p123 < /var/lib/mysql/all.sql
Salin selepas log masuk

  3.在A、B服务器的mysql中创建用户用于同步。

   创建用户:

mysql> create user &#39;tongbu&#39;@&#39;%&#39; identified by &#39;tongbu&#39;;
Salin selepas log masuk

   授权:

mysql> grant all on *.* to &#39;tongbu&#39;@&#39;%&#39;;
Salin selepas log masuk

   删除用户:

mysql> drop user &#39;用户名&#39;@&#39;%&#39;;
Salin selepas log masuk

   A、B服务器用户创建完成后,测试用户相互是否可以远程登陆mysql。

[root@test1 /]# mysql -utongbu -ptongbu -h192.168.1.8
   [root@test2 /]# mysql -utongbu -ptongbu -h192.168.1.7
Salin selepas log masuk

   测试无问题后重启A、B服务器中的mysql服务:[root@test /]# service mysqld restart

  4.设置A为主服务器,B为从服务器。

   1)查看A服务器mysql中的二进制日志名和偏移量值

    命令:mysql> show master status\G

    如下图

    

   2)在B服务器中配置连接服务器

mysql> stop slave;
    mysql> change master to
      -> master_host=&#39;192.168.1.7&#39;,
      -> master_user=&#39;tongbu&#39;,
      -> master_password=&#39;tongbu&#39;,
      -> master_log_file=&#39;mysql-bin.000024&#39;,
      -> master_log_pos=154;
    mysql> start slave;
Salin selepas log masuk

    mysql> show slave status\G 输入此命令查看Slave_IO_Running和Slave_SQL_Running的值是否为Yes,如下图

    

  5.设置B为主服务器,A为从服务器。

   1)查看B服务器mysql中的二进制日志名和偏移量

    命令:mysql> show master status\G

    

   2)在A服务器中配置连接服务器。

mysql> stop slave;
    mysql> change master to
      -> master_host=&#39;192.168.1.8&#39;,
      -> master_user=&#39;tongbu&#39;,
      -> master_password=&#39;tongbu&#39;,
      -> master_log_file=&#39;mysql-bin.000027&#39;,
      -> master_log_pos=154;
    mysql> start slave;
    mysql> show slave status\G 查看Slave_IO_Running和Slave_SQL_Running的值是否为Yes
Salin selepas log masuk

至此两台mysql数据库互为主从同步配置完成。

错误排查:

1.Slave_IO_Running状态错误

 检查MySQL> show slave status\G;时,Slave_IO_Running状态为Connecting错误,出现的原因主要分为三种,需要检查配置:

 1)网络不通

 2)账户权限配置错误,如密码不对、账号错误、地址错误

 3)二进制文件位置不对

2.主备数据冲突或不同造成的异常

 主键冲突、表已存在等错误代码如1062,1032,1060等,可以在mysql配置文件指定略过此类异常并继续下条sql同步,这样可以避免很多主从同步的异常中断。打开/etc/ mysql下的my.cnf文件,在[mysqld]后添加如下代码:

slave-skip-errors = 1062,1032,1060
Salin selepas log masuk

3. 跳过异常恢复同步

mysql >slave stop;
 mysql >SET GLOBAL sql_slave_skip_counter = 1;
 mysql >slave start;
Salin selepas log masuk

Atas ialah kandungan terperinci MYSQL双主全库同步复制的示例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Hubungan antara pengguna dan pangkalan data MySQL Hubungan antara pengguna dan pangkalan data MySQL Apr 08, 2025 pm 07:15 PM

Dalam pangkalan data MySQL, hubungan antara pengguna dan pangkalan data ditakrifkan oleh kebenaran dan jadual. Pengguna mempunyai nama pengguna dan kata laluan untuk mengakses pangkalan data. Kebenaran diberikan melalui perintah geran, sementara jadual dibuat oleh perintah membuat jadual. Untuk mewujudkan hubungan antara pengguna dan pangkalan data, anda perlu membuat pangkalan data, membuat pengguna, dan kemudian memberikan kebenaran.

Integrasi RDS MySQL dengan Redshift Zero ETL Integrasi RDS MySQL dengan Redshift Zero ETL Apr 08, 2025 pm 07:06 PM

Penyederhanaan Integrasi Data: AmazonRDSMYSQL dan Integrasi Data Integrasi Zero ETL Redshift adalah di tengah-tengah organisasi yang didorong oleh data. Proses tradisional ETL (ekstrak, menukar, beban) adalah kompleks dan memakan masa, terutamanya apabila mengintegrasikan pangkalan data (seperti Amazonrdsmysql) dengan gudang data (seperti redshift). Walau bagaimanapun, AWS menyediakan penyelesaian integrasi ETL sifar yang telah mengubah keadaan ini sepenuhnya, menyediakan penyelesaian yang mudah, hampir-sebenar untuk penghijrahan data dari RDSMYSQL ke redshift. Artikel ini akan menyelam ke integrasi RDSMYSQL Zero ETL dengan redshift, menjelaskan bagaimana ia berfungsi dan kelebihan yang dibawa kepada jurutera dan pemaju data.

MySQL: Kemudahan Pengurusan Data untuk Pemula MySQL: Kemudahan Pengurusan Data untuk Pemula Apr 09, 2025 am 12:07 AM

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Cara Mengisi Nama Pengguna dan Kata Laluan MySQL Cara Mengisi Nama Pengguna dan Kata Laluan MySQL Apr 08, 2025 pm 07:09 PM

Untuk mengisi nama pengguna dan kata laluan MySQL: 1. Tentukan nama pengguna dan kata laluan; 2. Sambungkan ke pangkalan data; 3. Gunakan nama pengguna dan kata laluan untuk melaksanakan pertanyaan dan arahan.

Pengoptimuman pertanyaan di MySQL adalah penting untuk meningkatkan prestasi pangkalan data, terutama ketika berurusan dengan set data yang besar Pengoptimuman pertanyaan di MySQL adalah penting untuk meningkatkan prestasi pangkalan data, terutama ketika berurusan dengan set data yang besar Apr 08, 2025 pm 07:12 PM

1. Gunakan indeks yang betul untuk mempercepatkan pengambilan data dengan mengurangkan jumlah data yang diimbas memilih*frommployeesWherElast_name = 'Smith'; Jika anda melihat lajur jadual beberapa kali, buat indeks untuk lajur tersebut. Jika anda atau aplikasi anda memerlukan data dari pelbagai lajur mengikut kriteria, buat indeks komposit 2. Elakkan pilih * Hanya lajur yang diperlukan, jika anda memilih semua lajur yang tidak diingini, ini hanya akan memakan lebih banyak pelayan dan menyebabkan pelayan melambatkan pada masa yang tinggi atau kekerapan misalnya, jadual anda

Bolehkah saya mengambil kata laluan pangkalan data di Navicat? Bolehkah saya mengambil kata laluan pangkalan data di Navicat? Apr 08, 2025 pm 09:51 PM

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

Cara Melihat MySQL Cara Melihat MySQL Apr 08, 2025 pm 07:21 PM

Lihat pangkalan data MySQL dengan arahan berikut: Sambungkan ke pelayan: MySQL -U Pengguna Nama -P Kata Laluan Run Show pangkalan data; Perintah untuk mendapatkan semua pangkalan data yang sedia ada Pilih pangkalan data: Gunakan nama pangkalan data; Lihat Jadual: Tunjukkan Jadual; Lihat Struktur Jadual: Huraikan nama jadual; Lihat data: pilih * dari nama jadual;

Memahami sifat asid: tiang pangkalan data yang boleh dipercayai Memahami sifat asid: tiang pangkalan data yang boleh dipercayai Apr 08, 2025 pm 06:33 PM

Penjelasan terperinci mengenai atribut asid asid pangkalan data adalah satu set peraturan untuk memastikan kebolehpercayaan dan konsistensi urus niaga pangkalan data. Mereka menentukan bagaimana sistem pangkalan data mengendalikan urus niaga, dan memastikan integriti dan ketepatan data walaupun dalam hal kemalangan sistem, gangguan kuasa, atau pelbagai pengguna akses serentak. Gambaran keseluruhan atribut asid Atomicity: Transaksi dianggap sebagai unit yang tidak dapat dipisahkan. Mana -mana bahagian gagal, keseluruhan transaksi dilancarkan kembali, dan pangkalan data tidak mengekalkan sebarang perubahan. Sebagai contoh, jika pemindahan bank ditolak dari satu akaun tetapi tidak meningkat kepada yang lain, keseluruhan operasi dibatalkan. Begintransaction; UpdateAcCountSsetBalance = Balance-100Wh

See all articles