注意事项1:主从配置首先要确保主从DB的数据一致,这样后面的主从同步才能顺利进行,如果主从DB一开始的DB结构或数据不一致,后面的主从同步就无法正常进行。

注意事项2:在进行主从同步配置时,应当停止与DB相关的所有业务,主库进行锁表操作,配置期间主库不能有任何结构或数据变化。

名词解释:

master 主库,线上业务运行使用的mysql

salve 从库,数据备份使用的mysql

主库配置

1、主库锁表,禁止写入新数据

flush tables with read lock;

2、配置ini文件

#增加如下配置

[mysqld]

# 节点ID,确保唯一
server_id = 1

# log config
log-bin = mysql-bin     #开启mysql的binlog日志功能
sync_binlog = 1         #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7                           #binlog过期清理时间
max_binlog_size = 100m                    #binlog每个日志文件大小
binlog_cache_size = 4m                        #binlog缓存大小
max_binlog_cache_size= 512m              #最大binlog缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行
auto-increment-offset = 1     # 自增值的偏移量
auto-increment-increment = 1  # 自增值的自增量
slave-skip-errors = all #跳过从库错误
log_bin_trust_function_creators = TRUE #若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步

3、重启Mysql服务

4、创建主库复制用户

#登录mysql
mysql -u root -P 3306 -p

#切换MySQL库

use mysql;

#创建用户

CREATE USER db_sync_user IDENTIFIED BY 'zxcv1314';

#@% 表示不限制连接的IP,可以更换为指定IP才能连接

grant replication slave on *.* to 'db_sync_user'@'%'  identified by '^zxcv1314';

#刷新权限

FLUSH PRIVILEGES;

#查看用户列表

select host,user from user;

5、查询master状态

#查看master状态

show master status;        #记录查询结果中的File、Position,配置从库时会用到

6、将需要同步的库进行备份

mysql备份与还原https://blog.csdn.net/zhaobangyu/article/details/127408586?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127408586%22%2C%22source%22%3A%22zhaobangyu%22%7D

从库配置

1、还原从库备份的文件

mysql备份与还原https://blog.csdn.net/zhaobangyu/article/details/127408586?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127408586%22%2C%22source%22%3A%22zhaobangyu%22%7D

2、打开从库的ini配置文件

#增加如下配置

[mysqld]

server_id = 2
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%

#需要同步的库
replicate-do-db=accounts

#需要同步的库
replicate-do-db=game

#需要同步的库
replicate-do-db=log

#需要同步的库
replicate-do-db=config

3、重启Mysql服务

4、配置连接

#登录mysql
mysql -u root -P 3306 -p

#切换MySQL库

use mysql;

#配置从DB连接主DB
CHANGE MASTER TO
MASTER_HOST = '主DB的IP',  
MASTER_USER = 'db_sync_user',
MASTER_PASSWORD = 'zxcv1314',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=3172468,
MASTER_RETRY_COUNT = 60,
MASTER_HEARTBEAT_PERIOD = 10000;

#这两项配置的值:主库配置->5.查询master状态查询出来的值:

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=3172468,

5、启动从库同步

slave start;   #有些版本执行这个命令可能会报错,无法识别,使用start slave;即可

5、查看同步状态

show slave status\G;

查询结果

mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 主DB地址Master_User: db_sync_userMaster_Port: 8306Connect_Retry: 60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos: 5615738Relay_Log_File: mysql-relay-bin.000778Relay_Log_Pos: 871267Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: accounts,game,log,configReplicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table: mysql.%,test.%,information_schema.%Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 5615738Relay_Log_Space: 902709Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id: 1Master_UUID: ae0a8ec4-6fc1-11e9-821a-4ccc6a4d7344Master_Info_File: D:\phpstudy_pro\Extensions\MySQL5.7.26\data_slave\master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 60Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position: 0Replicate_Rewrite_DB:Channel_Name:Master_TLS_Version:
1 row in set (0.00 sec)

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

这两项结果为Yes表示配置成功,如果出现失败之类的,可以根据查询结果里的Slave_SQL_Running_State排查问题。

从库配置完成。

续-主库配置

1、登录主库,解锁表锁定

unlock tables;

2、测试同步

在同步的库中表增删改查,表数据增删改查,方法增删改查,存储过程增删改查都能正常同步。

常用命令

#启动服务
net stop serverName
#停止服务
net stop serverName#查看主DB状态(数据发生不同步时,查看数据再次同步即可)
show master status;
#查看从DB状态
show slave status;#启动slave进程(从DB)
slave start 或 start slave
#停止slave进程(从DB)
slave stop; 停止salve进程(从DB)#删除用户
DROP USER 'jack'@'localhost';#锁表禁止写入新数据
flush tables with read lock;
#解锁表锁定
unlock tables;

Mysql主从同步配置相关推荐

  1. mysql 主从同步配置

    mysql 主从同步配置 转载于:https://www.cnblogs.com/liran123/p/10202534.html

  2. centos mysql 同步时间_centos:mysql主从同步配置(2018)

    centos:mysql主从同步配置(2018) 主服务器:10.1.1.144; 从服务器:10.1.1.163; 配置过程 1.进入主服务器,停止主服务mysql服务: systemctl sto ...

  3. CentOS下MySQL主从同步配置

    (转自)http://apps.hi.baidu.com/share/detail/5882847centos下MySQL主从同步配置 一.环境 主机: master操作系统:centos 5.3 I ...

  4. MySQL主从同步配置及存量数据同步方案

    实践准备: 准备两台服务器: 主:192.168.8.10 备:192.168.8.11 MySQL的版本最好保持一致. 步骤一: 授权给从服务器 创建一个专门的同步账号: GRANT REPLICA ...

  5. mysql主从同步配置超详细_MySQL主从同步配置

    一. 理论部分 MySQL主从同步 主从同步使得数据可以从一个数据库服务器复制到其他的服务器上.在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave). 因为复制 ...

  6. ShardingSphere(六) 读写分离之mysql 主从同步配置

    概述:本周介绍mysql的主从同步配置,为下一步的Sharding 读写分离提供操作环境.mysql 主从同步主要通过主库开启binlog文件功能,然后从库通过监听binlog中内容进行数据在从库的实 ...

  7. linux mysql 主从数据库_Linux下安装MySQL及MySQL主从同步配置

    从零开始说起,先说在Linux安装MySQL再说主从配置,MySQL的版本为5.7 一.mysql安装 1.使用命令 rpm -qa|grep mariadb 查看是否存在mariadb 2. 使用 ...

  8. ubuntun系统mysql数据库同步_Ubuntu下MySQL主从同步配置步骤

    1)安装mysql Ubuntu中安装一台mysql了,docker安装另外一台mysql 获取mysql的镜像,主从同步尽量保证多台mysql的版本相同,我的ubuntu中存在的mysql是5.7. ...

  9. centos mysql 主从_Centos下MySQL主从同步配置

    说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样, 因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低, Master的版本肯定不能高于Slav ...

最新文章

  1. 程序运行慢?你怕是写的假 Python
  2. C++知识点2——指针、引用基础
  3. softmax函数_数学证明深度学习激活函数从Softmax到Sparsemax
  4. 海通证券签约神策数据 数据赋能构建数字化运营闭环
  5. Initial load DNL_CUST_PROD0 并找出SAP S4表和CRM表的mapping关系
  6. pandas filter_数据分析之Pandas操作(2)
  7. IDEA工具开发必备设置-极大提高开发效率
  8. php gdb strace抓包,gdb,strace那些不常用的功能
  9. 01_Android应用开发环境_01_android发展史及系统架构
  10. 遇到不可重现问题怎么办
  11. 新安装的mysql设置密码
  12. 基于springboot网上订餐系统
  13. godaddy无法修改域名服务器,GoDaddy域名修改DNS设置方法
  14. python求残差_用Python计算Pearson标准残差
  15. 嵌入式软件开发做什么?嵌入式开发培训学哪些
  16. php 腾讯短信接口api,ThinkPHP5——接入腾讯云短信API
  17. 1039: 绝对值最大(C语言)
  18. CS229与《统计学习方法》的EM算法理解和比较,收敛性证明
  19. python控制苹果手机触摸屏失灵怎么办_苹果手机触摸屏失灵怎么办
  20. Linux - 拨号上网

热门文章

  1. postman之post请求
  2. 10.16 sigsuspend函数
  3. 大型编程电视剧连载 | CSS知识点硬核整理归纳(一)
  4. 饥荒服务器账号问题,饥荒显示服务器遇到一些问题 | 手游网游页游攻略大全
  5. 【插件的使用】——Swiper插件的应用
  6. C语言基础02——控制语句。二分查找、随机数讲解、求自幂数、整数逆序、X图案打印、猜数字、公约数公倍数、素数
  7. 24岁到26岁 奔三的尴尬年纪,你要知道的50件事。
  8. 2020.9.16工作问题记录————CentOS6挂载镜像离线安装gcc,g++和其他依赖库
  9. 利用 Python 获取余额宝历史收益数据
  10. Application 的 onCreate 和 attachBaseContext