MySQL主从复制搭建
发布时间:2022-07-05 16:49:20 所属栏目:MySql教程 来源:互联网
导读:mysql安装点击此处 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步。 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。 指定数据库同步操作: 环
mysql安装点击此处 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步。 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。 指定数据库同步操作: 环境说明:需求是创建主从复制环境,要求master端只同步主库中的test库到 slave端 master端IP:10.10.10.1 slave端IP:10.10.10.2 主从复制条件: 1.开启主库binlog功能 2.开启主从库server-id 3.确保主从配置文件my.cnf所有server-id不同 4.主库建立同步的账户rep并且授权replication 5.在主库锁表flush tables with read lock; 并查看主库上binlog文件及位置点 show master statusG;记录下此binlog文件和位置点。 6.在master端新开mysql窗口导出全备,恢复备份数据到从库, 7.登录从库,CHANGE MASTER TO….. 自动在从库生成配置文件master.info 打开复制开关start slave;show slave statusG 8.解锁,开放用户写入功能 操作过程: 主库my.cnf配置文件件参数: vi /etc/my.cnf server-id=1111 (和从库不同即可) log-bin=mysql-bin (开启binlog) binlog-do-db=数据库名称 (记录指定库的binlog,模式不同,记录结果不同。) binlog_format=mixed (设置binlog模式) expire_logs_days = 7 (保留7天的binlog) 重启master端mysql centos 6: /etc/init.d/mysql restart centos 7: systemctl restart mysql 从库my.cnf配置文件件参数: vim /etc/my.cnf server-id=2222 (从库的ID,和主库不冲突即可) 重启slave端mysql centos 6: /etc/init.d/mysql restart centos 7: systemctl restart mysql 一.master 上操作: 主库建立同步的账户rep并且授权replication;在主库锁表flush tables with read lock; 并查看主库上binlog文件及位置点 show master statusG;记录下此binlog文件和位置点。 mysql -uroot -p'数据库密码' -e "grant replication slave on *.* to rep@'10.10.10.2' identified by 'rep@back123'; flush privileges;flush tables with read lock; show master status;" 备份指定数据库数据 mysqldump -uroot -p'数据库密码' -B 数据库名称 --single-transaction --events|gzip >/root/数据库名称_$(date +%F).sql.gz (输出压缩的sql文件) mysqldump -uroot -p'数据库密码' -B 数据库名称 --single-transaction --events >/root/数据库名称_$(date +%F).sql (输出sql文件) 传输数据到slave端从库机器 scp -rp -P ssh服务端口 sql文件名称 root@从库IP:/root/ 二.slave上操作: 登陆从库: gzip -d test.sql.gz; source /root/test.sql; stop slave; reset slave all; stop slave; CHANGE MASTER TO MASTER_HOST='主库地址', MASTER_PORT=3306, ------->端口 MASTER_USER='新建数据库用户', MASTER_PASSWORD='新建用户的密码', MASTER_LOG_FILE='日志文件名称', MASTER_LOG_POS=日志的Position值; start slave;show slave statusG; 三.最后在master上执行解锁操作: unlock tables; 到此处配置完成: 在master上创建测试表测试: 同步单个数据库可以在主服务器或者从服务器上配置: 主服务器: binlog-do-db= 仅同步指定的库 binlog-ignore-db= 忽略指定的库 从服务器: replicate_do_db= 同步指定的库 replicate_ignore_db= 忽略指定的库 replicate_do_table= 同步指定的表 replicate_ignore_table= 忽略指定的表 replicate_wild_do_table= 如aming.%,支持通配符 replicate_wild_ignore_table= 主从过程 主将更改操作记录到binlog中 从将主的binlog事件(SQL语句)同步到本机并记录在relaylog中 从根据relaylog里面的SQL语句按顺序执行 说明: 该过程有三个线程,主上有一个log dump线程,用来和从的i/o线程传递binlog;从上有两个线程,其中i/o线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的SQL语句落地。 应用环境 备份重要数据 分担主库数据读取压力。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |