mysql主从同步配置(mysql5.7)

mysql主从同步配置(mysql5.7):

1.将当前数据库文件存储目录备份

cd /app/
tar -czvf  /app/packages/binlog_tar.gz.20210303  /app/database/mysql/database/mysql/data/3306/binlog*
tar -czvf  /app/packages/database_bak_tar.gz.20210303  database

2.登陆数据库初始化binlog日志

mysql> reset master;
mysql> show master status\g;

3.导出mysql全量的表数据:

导出数据并记录master_pos节点
./mysqldump -uroot -p --all-databases --master-data > /home/all_bak  
回车后输入密码
将导出的全量表数据文件传送至从数据库机器
   scp /home/all_bak  
-------若导出失败则根据实际情况调整超时时间-------
mysql> show global variables like '%timeout%';
mysql> set global net_read_timeout = 120; 
mysql> set global net_write_timeout = 900;
mysql> set global wait_timeout=2880000;
mysql> set global interactive_timeout=2880000;
mysql> max_allowed_packet = 500M

4.配置文件添加

vi /etc/my.cnf
server-id=1
log-bin=/app/database/mysql/data/3306/binlog

5.创建主从同步用户

创建同步用户slave
	create user 'slave'@'IP' identified by 'PWD';
	GRANT REPLICATION SLAVE ON *.* TO 'slave'@'IP';
	flush privileges;
撤销授权
	REVOKE all PRIVILEGES on *.* from 'root'@'%' ;
检查配置
	select user,host from mysql.user where user='slave';
重启数据库
	kill -9 数据库进程PID
	/bin/sh /usr/local/mysql/bin/mysqld_safe &

6.从数据库机器配置:

创建mysql用户
useradd mysql
passwd mysql
解压mysql5.7gz包
本次使用的是mysql5.7.26
	tar -xzvf mysql-5.7.26-el7-x86_64.tar.gz
	mv mysql-5.7.26-el7-x86_64.tar.gz /app/mysql
赋权目录给mysql用户
	chown -R mysql.mysql /app/mysql
	cp -rp /app/mysql /usr/local/mysql/
	ln -s /usr/local/mysql/bin/mysql /bin/mysql
配置文件添加:
与主数据库配置文件一致,只修改server-id
server-id=11
初始化数据库
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/app/database/mysql/data/3306/ -- user=mysql --initialize
记录好mysql初始化后的root用户密码
启动数据库
cd /usr/local/mysql/bin/
./mysqld_safe --defaults-file=/etc/my.cnf &
登陆mysql重置root密码
重置root用户密码
	mysql> alter user 'root'@'localhost' identified by '123456';
刷新MySQL的系统权限相关表
	mysql> flush privileges;
导入主数据全量表数据文件
	mysql -uroot -p < /home/wangtc/all_bak;   回车后输入密码
找到主数据全量表数据文件binlog节点信息并记录
	head -30 /home/wangtc/all_bak|grep mysql-bin
配置主从同步(从数据库)
mysql> change master to 
	-> master_host='主数据库IP',
    -> master_port=3306,
	-> master_user='slave',
	-> master_password='PWD',
	-> master_log_file='mysql-bin.000001',
	-> master_log_pos=294;

启动slave
mysql> start slave;

查看slave状态
mysql> show slave status\G;

7. 常见报错及解决方法

若Slave_IO_Running不显示为yes则存在以下几种情况:
本机或主数据库机器防火墙及selinux未关闭
无法使用主从同步用户连接主数据库:检查主数据库授权信息,检查从库主从配置是否有误
若Slave_IO_Running不显示为yes则:
如果数据库没有使用主从复制,那么就可以将参数log_bin_trust_function_creators设置为1
	SET GLOBAL log_bin_trust_function_creators = 1;
跳过slave上的1个错误,------若报错的条数很多,可调整参数
	set global sql_slave_skip_counter =1;
若报错:Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’
停止slave 
	mysql> stop slave;
重置slave
	mysql> reset slave;
启动slave
	mysql> start slave;
    ---------以上均属个人经验,有不对的地方还请提出,一起沟通交流,谢谢----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值