【MYSQL】主从复制

本文详细介绍了如何进行MySQL的主从复制配置,包括前期准备、主服务器配置、从服务器配置、验证同步及解锁操作。在过程中,强调了开启bin-log日志、设置server_id、授权用户等关键步骤,并提供了遇到错误1048时的解决方法,即通过停止、跳过错误和重新启动从服务器服务来恢复同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接

https://www.cnblogs.com/zyk01/p/10176530.html#%E5%BC%80%E5%A7%8B%E6%90%AD%E5%BB%BA%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6

主从复制

前期准备

首先:将主服务器加锁或关闭mysql,禁止主服务器进行写操作,将数据备份到从服务器

服务器加锁语句:

flush table with read lock;  //加读锁

备份主服务器上的数据库SQL文件(主服务器备份到从服务器)

备份主服务器上的所有数据库

mysqldump -uroot -p --all-databases > all_db.sql

传送至指定的从服务器

 scp all_db.sql mysqlback.dmsd.tech:/home/admin
 scp “文件名” “服务器地址+备份路径”

操作过程:

1、主服务器配置

查看bin-log日志是否开启:以下为开启状态

show master status

image.png

如果bin-log日志未开启,需要开启bin-log日志

在my.cnf文件中开始binglog日志并设置server_id(my.cnf路径:/etc/my.cnf)

image.png

[mysqld]  //在mysqld下设置binlog日志
#设置binlog日志
log-bin=/var/lib/mysql/mysql-bin  //启动二进制日志并设置日志地址
server-id=1   //服务器的唯一标识,主从服务器之间不能相同

在主服务器创建授权用户

进入mysql
create user 'prodback' identified by 'prodback'; //user为用户名  identified为密码
grant replication slave on *.* to 'prodback';       //对新建的用户进行授权
flush privileges;       //刷新授权表,刷新后授权生效

2、从服务器配置

在my.cnf文件中设置server-id,路径:cd /usr/my.cnf

image.png

[mysqld] //在mysqld下添加配置
port=3306
server-id=2     //从服务器配置文件要加入的内容,设置唯一标识

在从服务器中,进入mysql,进行如下配置

change master to
master_host='mysql.dmsd.tech', //从服务器的主机
master_user='prodback',//执行复制用户名--为主机上新建的授权用户
master_password='prodback',//执行复制用户密码
master_log_file='mysql-bin.000002',//二进制日志文件名
master_log_pos='6041255';//复制开始位置,这个位置之前的操作不会被备份到从机,

启动从库同步:start slave;

4、验证从服务器是否连接上主服务器

show slave status\G

image.png

5、验证主服务器和从服务器是否进行同步

image.png

6、从服务器执行同步后进行主服务器解锁操作

 unlock tables;

错误记录

错误码1048, Slave_SQL_Running: No

               Last_SQL_Errno: 1048
               Last_SQL_Error: Error 'Column 'is_delete' cannot be null' on query. Default database: 'integral_pro'. Query: 'UPDATE
        tik_user tik
        set
        is_delete=(SELECT is_delete from tc_allusers WHERE id = tik.id)'

解决方式:错误码1048

参考博客:https://www.cnblogs.com/l-hh/p/9922548.html

stop slave;   //停止slave服务
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;     //设置属性为1
start slave;        //启动slave服务
show slave status\G;   //

image.png

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值