MySQL双向备份的方法介绍(附代码)
本篇文章给大家带来的内容是关于MySQL双向备份的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
MySQL 双向备份也被称为 主主备份 ,即两个 MySQL 服务都是 Master,其中任意一个服务又是另一个服务的 Slave。
准备
服务器
MySQL服务器 | 版本 | IP地址 |
---|---|---|
masterA | 5.6.41 | 192.168.1.201 |
masterB | 5.6.41 | 192.168.1.202 |
注:
备份的 MySQL 服务器版本尽量保持一致,不同的版本可能二进制日志格式不兼容。具体操作
注意
操作过程中注意两边数据的一致!!!
masterA 配置
my.cnf
[mysqld] # 服务器唯一标识 server-id=1 # 二进制日志文件名 log-bin=mysql-bin # 需要备份的数据库,多个数据库用 , 分隔 binlog-do-db=piumnl # 需要复制的数据库,多个数据库用 , 分隔 replicate-do-db=piumnl # 中继日志文件名 relay_log=mysqld-relay-bin # 手动启动同步服务,避免突然宕机导致的数据日志不同步 skip-slave-start=ON # 互为主从需要加入这一行 log-slave-updates=ON # 禁用符号链接,防止安全风险,可不加 symbolic-links=0 # 可不加 # resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0 master-info-repository=table relay-log-info-repository=table relay-log-recovery=1 # 可不加 # 禁用 dns 解析,会使授权时使用的域名无效 skip-host-cache skip-name-resolve sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
masterB 配置
my.cnf
# 不再解释各个配置项 [mysqld] server-id=2 log-bin=mysql-bin binlog-do-db=piumnl replicate-do-db=piumnl relay_log=mysql-relay-bin skip-slave-start=ON log-slave-updates=ON symbolic-links=0 # resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0 master-info-repository=table relay-log-info-repository=table relay-log-recovery=1 skip-host-cache skip-name-resolve sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
创建备份用户
masterA & masterB 都要创建备份用户:
create user 'rep'@'%' identified by 'rep'; # 创建一个账户 grant replication slave on *.* to 'rep'@'%'; # 授予该账户对任意数据库任意表的主从备份权限
备注:
- Linux 下 MySQL 对
root@%
用户关闭了grant_priv
权限,所以如果是远程登录会出现授权失败的情况 - 此处备份用户帐号和密码可不一致,此处为了简化操作使用一样的帐号和密码
重启服务器
重启服务器
开启备份
masterA
查看 masterB 状态
show master status\G; # 此处需要关注 File 和 Position 值
开启备份
stop slave; # master_log_file 就是第一步操作的 File 值 # master_log_pos 就是第一步操作的 Position 值 change master to master_host=<master_hostname>, master_user=<rep_username>, master_port=<master_port>, master_password=<rep_password>, master_log_file='mysql-log.000003', master_log_pos=154; start slave;
查看结果
show slave status\G; # 查看最重要的两项,两个都必须为 Yes ,有一个为 No 都要去查看错误日志文件,看看什么地方存在问题 # Slave_IO_Running: Yes # Slave_SQL_Running: Yes
masterB
反向重复 masterA 的操作测试
分别在 masterA 和 masterB 中插入数据,并查看另一台服务器是否及时出现预期的数据
问题
MySQL Slave Failed to Open the Relay Log
这应该是中继日志出现问题,可尝试如下操作
stop slave; flush logs; start slave;
Got fatal error 1236 from master when reading data from binary log
从主库中拉取日志时,发现主库的 mysql_bin.index 文件中的第一个文件不存在。
# 进行如下操作重置 # 如果二进制日志或中继日志有其他作用,请勿进行如下操作 reset master; reset slave; flush logs;
使用 Atas ialah kandungan terperinci MySQL双向备份的方法介绍(附代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP! Apl berkuasa AI untuk mencipta foto bogel yang realistik Alat AI dalam talian untuk mengeluarkan pakaian daripada foto. Gambar buka pakaian secara percuma Penyingkiran pakaian AI Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami! Editor kod yang mudah digunakan dan percuma Versi Cina, sangat mudah digunakan Persekitaran pembangunan bersepadu PHP yang berkuasa Alat pembangunan web visual Perisian penyuntingan kod peringkat Tuhan (SublimeText3) Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima. Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data Laravel adalah rangka kerja PHP untuk membina aplikasi web yang mudah. Ia menyediakan pelbagai ciri yang kuat termasuk: Pemasangan: Pasang Laravel CLI secara global dengan komposer dan buat aplikasi dalam direktori projek. Routing: Tentukan hubungan antara URL dan pengendali dalam laluan/web.php. Lihat: Buat pandangan dalam sumber/pandangan untuk menjadikan antara muka aplikasi. Integrasi Pangkalan Data: Menyediakan integrasi keluar-of-the-box dengan pangkalan data seperti MySQL dan menggunakan penghijrahan untuk membuat dan mengubah suai jadual. Model dan Pengawal: Model mewakili entiti pangkalan data dan proses pengawal permintaan HTTP. MySQL dan phpmyadmin adalah alat pengurusan pangkalan data yang kuat. 1) MySQL digunakan untuk membuat pangkalan data dan jadual, dan untuk melaksanakan pertanyaan DML dan SQL. 2) Phpmyadmin menyediakan antara muka intuitif untuk pengurusan pangkalan data, pengurusan struktur meja, operasi data dan pengurusan kebenaran pengguna. Saya menghadapi masalah yang rumit ketika membangunkan aplikasi kecil: keperluan untuk mengintegrasikan perpustakaan operasi pangkalan data ringan dengan cepat. Selepas mencuba beberapa perpustakaan, saya mendapati bahawa mereka mempunyai terlalu banyak fungsi atau tidak serasi. Akhirnya, saya dapati Minii/DB, versi mudah berdasarkan YII2 yang menyelesaikan masalah saya dengan sempurna. Berbanding dengan bahasa pengaturcaraan lain, MySQL digunakan terutamanya untuk menyimpan dan mengurus data, manakala bahasa lain seperti Python, Java, dan C digunakan untuk pemprosesan logik dan pembangunan aplikasi. MySQL terkenal dengan prestasi tinggi, skalabilitas dan sokongan silang platform, sesuai untuk keperluan pengurusan data, sementara bahasa lain mempunyai kelebihan dalam bidang masing-masing seperti analisis data, aplikasi perusahaan, dan pengaturcaraan sistem. Ringkasan Artikel: Artikel ini menyediakan arahan langkah demi langkah terperinci untuk membimbing pembaca tentang cara memasang rangka kerja Laravel dengan mudah. Laravel adalah rangka kerja PHP yang kuat yang mempercepat proses pembangunan aplikasi web. Tutorial ini merangkumi proses pemasangan dari keperluan sistem untuk mengkonfigurasi pangkalan data dan menyediakan penghalaan. Dengan mengikuti langkah -langkah ini, pembaca dapat dengan cepat dan cekap meletakkan asas yang kukuh untuk projek Laravel mereka. MySQL sesuai untuk aplikasi web dan sistem pengurusan kandungan dan popular untuk sumber terbuka, prestasi tinggi dan kemudahan penggunaan. 1) Berbanding dengan PostgreSQL, MySQL melakukan lebih baik dalam pertanyaan mudah dan operasi membaca serentak yang tinggi. 2) Berbanding dengan Oracle, MySQL lebih popular di kalangan perusahaan kecil dan sederhana kerana sumber terbuka dan kos rendah. 3) Berbanding dengan Microsoft SQL Server, MySQL lebih sesuai untuk aplikasi silang platform. 4) Tidak seperti MongoDB, MySQL lebih sesuai untuk data berstruktur dan pemprosesan transaksi.
进行插入、更新和删除操作,将不会进行备份( 这是巨坑 )!!!【相关推荐:MySQL教程】
Alat AI Hot
Undresser.AI Undress
AI Clothes Remover
Undress AI Tool
Clothoff.io
Video Face Swap
Artikel Panas
Alat panas
Notepad++7.3.1
SublimeText3 versi Cina
Hantar Studio 13.0.1
Dreamweaver CS6
SublimeText3 versi Mac
Topik panas
1661
14
1418
52
1311
25
1261
29
1234
24
Peranan MySQL: Pangkalan Data dalam Aplikasi Web
Apr 17, 2025 am 12:23 AM
Cara Memulakan MySQL oleh Docker
Apr 15, 2025 pm 12:09 PM
Contoh Pengenalan Laravel
Apr 18, 2025 pm 12:45 PM
MySQL dan PHPMyAdmin: Ciri dan Fungsi Teras
Apr 22, 2025 am 12:12 AM
Selesaikan masalah sambungan pangkalan data: Kes praktikal menggunakan perpustakaan mini/db
Apr 18, 2025 am 07:09 AM
Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan
Apr 19, 2025 am 12:22 AM
Kaedah pemasangan kerangka Laravel
Apr 18, 2025 pm 12:54 PM
MySQL vs Pangkalan Data Lain: Membandingkan Pilihan
Apr 15, 2025 am 12:08 AM