MySQL主从同步配置

MySQL主从同步配置


一、1.编辑MySQL主上的/etc/my.cnf

vim /etc/my.cnf

//在文件加入以下
log-bin=resp_mysql
server-id=1

log-bin:MySOL的bin-log的名字,
server-id:MySQL实例中全局唯一,并且大于0。

之后重启mysql

service mysqld restart

显示以下说明配置成功
在这里插入图片描述

二、编辑MySQL从数据库上的/etc/my.cnf

vim /etc/my.cnf


server-id=2

server-id:MySQL实例中全局唯一,并且大于0。与主上的erverid区分开

三、在MySQL主上创建用于备份账号

进入mysql命令行

resp:账号
repl123456:密码

CREATE USER 'resp'@'%' IDENTIFIED BY 'repl123456';

给用户赋予权限

GRANT REPLICATION SLAVE ON *.* TO 'resp'@'%';

四、MySQL主上加锁,阻止所有的写入操作

FLUSH TABLES WITH READ LOCK;

五、MySQL主上,查看bin-log的文件名和位置

SHOW MASTER STATUS;

在这里插入图片描述

六、MySQL主上dump所有数据备份

在外部执行命令

mysqldump --all-databases --master-data > dbdump.db -uroot -p

输入密码后会备份到当前目录

此处有可能会显示 : -bash: mysqldump: 未找到命令
解决方法如下:
find / -name mysql -print // 找到文件名称为mysql的文件
ln -fs /usr/local/mysql-5.7.26/bin/mysqldump /usr/bin 执行
在这里插入图片描述

七、MySQL主进行解锁,解锁后,主上可以写入数据

UNLOCK TABLES;

八、MySQL从上导入之前dump的数据

上传文件到服务器然后执行命令

mysql < dbdump.db -uroot -p

九、MySQL从上配置主从连接信息

     change master to 
    -> master_host='ip',
    -> master_user='resp',
    -> master_password='repl123456',
    -> master_log_file='resp_mysql.000001',
    -> master_log_pos=217918;

或者

change master to master_host='ip',master_user='resp',master_password='repl123456',master_port=13306,master_log_file='resp_mysql.000001',master_log_pos=286944;

master host:MySQL主的地址
master_user:备份的用户名
master_password:备份的用户密码
master_log_file:bin-log的文件名
master_log_pos:bin-log的位置

十、MySOL从上开启同步

START SLAVE;

查看状态

show slave status

遇到问题解决方式

在这里插入图片描述
解决办法一、

Slave_SQL_Running: No
1.程序可能在slave上进行了写操作

2.也可能是slave机器重起后,事务回滚造成的.

一般是事务回滚造成的:
解决办法:

mysql> stop slave ;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave ;

解决办法二、(推荐)

首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值

进入master

复制代码
mysql> show master status;
±---------------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±---------------------±---------±-------------±-----------------+
| localhost-bin.000094 | 33622483 | | |
±---------------------±---------±-------------±-----------------+
1 row in set (0.00 sec)

然后到slave服务器上执行手动同步:

 	 change master to 
    -> master_host='ip',
    -> master_user='resp',
    -> master_password='备份用户密码',
    -> master_log_file='resp_mysql.000001',
    -> master_log_pos=217918;

mysql> show slave status;
*************************** 1. row ***************************

Master_Log_File: localhost-bin.000094
Read_Master_Log_Pos: 33768775
Relay_Log_File: localhost-relay-bin.000537
Relay_Log_Pos: 1094034
Relay_Master_Log_File: localhost-bin.000094
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:

在这里插入图片描述

  • 3
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值