MYSQL双主全库同步复制的示例详解
环境:
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
在B服务器my.cnf文件中的[mysqld]下添加上图内容,只更改server-id值即可。
server-id=2 log-bin=mysql-bin log-bin-index=mysql-bin
2.在A服务器中的mysql安装路径下(rpm安装路径为/var/lib/mysql)创建全库备份文件all.sql。
创建命令:
touch /var/lib/mysql/all.sql
备份命令:
[root@test1 mysql]# mysqldump -uroot -p123 --all-databases > /var/lib/mysql/all.sql
把all.sql文件拷贝到B服务器中的某个路径下(以/var/lib/mysql路径为例)进行恢复。
恢复命令:
[root@test2 /]# mysql -uroot -p123 < /var/lib/mysql/all.sql
3.在A、B服务器的mysql中创建用户用于同步。
创建用户:
mysql> create user 'tongbu'@'%' identified by 'tongbu';
授权:
mysql> grant all on *.* to 'tongbu'@'%';
删除用户:
mysql> drop user '用户名'@'%';
A、B服务器用户创建完成后,测试用户相互是否可以远程登陆mysql。
[root@test1 /]# mysql -utongbu -ptongbu -h192.168.1.8 [root@test2 /]# mysql -utongbu -ptongbu -h192.168.1.7
测试无问题后重启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='192.168.1.7', -> master_user='tongbu', -> master_password='tongbu', -> master_log_file='mysql-bin.000024', -> master_log_pos=154; mysql> start slave;
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='192.168.1.8', -> master_user='tongbu', -> master_password='tongbu', -> master_log_file='mysql-bin.000027', -> master_log_pos=154; mysql> start slave; mysql> show slave status\G 查看Slave_IO_Running和Slave_SQL_Running的值是否为Yes
至此两台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
3. 跳过异常恢复同步
mysql >slave stop; mysql >SET GLOBAL sql_slave_skip_counter = 1; mysql >slave start;
Atas ialah kandungan terperinci MYSQL双主全库同步复制的示例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

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



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.

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 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.

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.

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

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.

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;

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
