首页 技术 正文
技术 2022年11月11日
0 收藏 726 点赞 4,117 浏览 1909 个字

克隆192.168.138.130(主库),修改后的ip为192.168.138.130(从库),修改131机器的/etc/udev/rules.d/70-persistent-net.rules,将name=’eth0’行注释掉,name=’eth1’改成name=’eth0’,重启网络服务service network restart,再将原eth1的mac地址修改到修改到/etc/sysconfig/network-scripts/ifcfg-eth0,再重启网络服务,关闭两个库的防火墙

1.在主库上开启binlog,从库上暂时关闭binlog,并且将server-id修改得与主库不一样

2.在主库上创建用户从库备份的账号

mysql>grant replication slave on *.* to rep@’192.168.138.*’ identified by ‘oldboy’;

flush privileges;

3.给主库的表加读锁,禁止写入

mysql>flush tables with read lock;

4.查看master状态,记录logbin名称和位置

mysql>show master status;

mysql>show master logs;

mysql配置主从复制和常见问题

5.上一个窗口保留,另开一个窗口对主库进行备份并压缩,然后unlock tables

#mysqldump -uroot -poldboy -A -B –events –master-data=2 > /opt/rep.sql.gz

(生产一般用日常定时备份mysqldump带–master-data=1的全备,这样无需锁表无需熬夜 ,在change master 时也无需指定日志文件和位置,)

6.将备份数据灌入备库

#mysql -uroot -poldboy  <  /opt/rep.sql.gz

7.制作主从同步需要的语句,在从库(root)执行

change master to master_host=’192.168.138.130′,master_user=’rep’,master_password=’oldboy’,master_log_file=’mysql-bin.000001′,master_log_pos=744;

8.在从库上start slave,检查是否成功show slave status \G,结果应该是

Slave_IO_Running:Yes,Slave_SQL_Running:Yes

Seconds_Behind_Master: 0表示落后于主库的秒数

配置主从复制常见问题汇总

1.主库show master status \G无结果

主库没有开启binlog,查看/etc/my.cnf有log-bin,或查看变量log_bin(下划线,不是横杠)为on

2.多实例时某一个实例显示mysql is running,grep mysql时实际并未启动

启动脚本的原因,需要删除mysql.sock和对应的pid文件

3.由于mysqldump加-F参数导致切换binglog,进而导致master status的日志文件和位置与导库之前记录的不一致

无影响,只是切换binlog,但两个binlog之间并没有更新

4.未关闭防火墙导致从库一个进程yes一个进程error

从库需要记录binlog的场景

1.级联同步,即当前从库还要作为其他从库的主库

2.把从库作为数据库备份服务器时

需要在从库开启binlog,并且加上参数log-slave-updates

Slave_IO_Running:Yes,Slave_SQL_Running:No

(环境创建:在从库创建一个数据库,在主库创建相同的数据库,从库查看状态即为如上)

解决方法1:set global sql_slave_skip_counter=1

在从库上

mysql> stop slave;

mysql> set global sql_slave_skip_counter=1;(取值为n,n>0,表示在从库忽略主库的n个更新)

mysql> start slave;

mysql> show slave status\G,查看即为正常

以上方法对于普通的互联网业务问题不大,在不影响公司业务的前提下

企业场景解决主从同步,比主从不一致对当前业务更重要,如果主从数据一致也很重要,可另找时间回复从风苦

主从数据不一致与保持主从同步持续状态哪个更重要,需要根据企业业务判断

解决方法2:slave_skip_errors=1032,1062,1007

在从库的/etc/my.cnf中根据需求配置跳过指定的错误号

(如果mysql连接慢,可在配置文件中加skip-name-resolve,忽略名字解析)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,028
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,858