主master : 192.168.8.10

  • 开启二进制日志
  • 配置唯一的server-id
  • 获得master二进制日志文件名及位置
  • 创建一个用于slave和master通信的用户账号

从slave : 192.168.8.11

  • 配置唯一的server-id
  • 使用master分配的用户账号读取master二进制日志
  • 启用slave服务

1、配置主库:
1)、授权给从数据库服务器
mysql>GRANT REPLICATION SLAVE ON *.* to 'slave'@'192.168.8.11' identified by 'b5HMLIWQSdT630Dp';

mysql>FLUSH PRIVILEGES;

## 查看MySQL现在有哪些用户及对应的IP权限
mysql> select user,host from mysql.user;

2)、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效

在该配置文件[mysqld]下面添加下面内容:

[mysqld]
log-bin=/var/lib/mysql/binlog
server-id=1
binlog-do-db = cmdb
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

server-id:master端的ID号;
log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的(我这里是偷懒了,直接放在了下面那个datadir下面);
binlog-do-db:要同步的数据库名
还可以显示 设置不同步的数据库:
binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test

3)、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复
mysql> show master status;

+-------------------+-----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+-----------+--------------+------------------+-------------------+
| mysqld-bin.000121 | 514780853 | | | |
+-------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

2、配置从库

1)、理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:

[mysqld]
server-id=2  //必须是唯一的

重启时报错:mysqld: unknown variable ‘master-host=

说明mysql不认识这些变量,网上搜罗了一番,原因是mysql5.5+版本主从复制不支持这些变量,需要在从库上用命令来设置:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',
  MASTER_PORT=3306,
  MASTER_USER='slave',
  MASTER_PASSWORD='b5HMLIWQSdT630Dp',
  MASTER_LOG_FILE='mysql-bin.000071',
  MASTER_LOG_POS=120; #后面两个参数的值与主库保持一致
MASTER_CONNECT_RETRY=10;

mysql> CHANGE MASTER TO MASTER_HOST='111.230.144.106',
-> MASTER_PORT=3306,
-> MASTER_USER='slave2',
-> MASTER_PASSWORD='b5HMLIWQSdT630Dp',
-> MASTER_LOG_FILE='mysqld-bin.000121',
-> MASTER_LOG_POS=514780853,
-> MASTER_CONNECT_RETRY=10;

2)、启动slave进程
mysql> start slave;
错误error 1872
执行重置
reset slave;
Query OK, 0 rows affected (0.04 sec)

3)、查看slave的状态,
show slave status;
如果下面两项值为YES,则表示配置正确:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
从库正在等待主库更新数据。。。Waitin for master to send event...

三、同步主库已有数据到从库

主库操作:
1、停止主库的数据更新操作
mysql>flush tables with read lock;
2、新开终端,生成主数据库的备份(导出数据库)
[root@zhoujietest ~]# mysqldump -uroot -ptest123 cmdb > cmdb.sql
3、将备份文件传到从库
[root@zhoujietest ~]# scp cmdb.sql root@192.168.8.11:/root/
4、主库解锁
mysql>unlock tables;

然后在主服务器上查询当前二进制文件的文件名及偏移位置:

mysql > show master status;

然后停止主服务器上的MySQL服务:

shell> mysqladmin -u root shutdown

从库操作:
1、停止从库slave
mysql>slave stop;
2、新建数据库cmdb
mysql> create database cmdb default charset utf8;
3、导入数据
[root@ops-dev ~]# mysql -uroot -ptest123 cmdb<cmdb.sql
4、查看从库已有该数据库和数据
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cmdb |
| mysql |
| performance_schema |
| test |
+--------------------+

此时主从库的数据完全一致,如果对主库进行增删改操作,从库会自动同步进行操作。

转载于:https://www.cnblogs.com/Christine-ting/p/10481805.html

mysql主从复制同步相关推荐

  1. mysql主从复制同步实验_db.mysql.主从同步实验

    实验环境:windows10(1607).mysql5.7.16  (for windows zip) 主库(端口3306)配置文件: [mysqld] #数据库根目录 basedir = D:\my ...

  2. mysql 流复制_MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken

    前言 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器.在 ...

  3. mysql 主从同步检查_MySQL主从复制一致性检测

    在MySQL主从复制过程中,常常需要对某些重要的表进行一致性检查. 由于主从数据在同步时存在一定的延迟,因此直接读取服务器数据的方式无法严格保证信息的一致性.在数据在同步完全结束之前,一直处于不断变化 ...

  4. mysql主从复制、基于GTID的主从、半同步

    使用的mysql版本5.7.17 一.主从复制 原理: 主从复制一共有三个进程,从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库的binlog,并将得到的binlog日志写到r ...

  5. mysql主从同步简单原理_MYSQL简单主从复制原理及实现

    mysql主从复制原理: Master会对数据库产生修改的语句记录到二进制日志中,在Slave中会有一个线程(IO thread)会向Master请求二进制日志中发生的事件,Master通过binlo ...

  6. mysql主从同步slave_MySQL主从复制(Master-Slave)实践

    MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...

  7. MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken

    前言 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器.在 ...

  8. 企业级运维——Mysql主从复制(异步、半同步、全同步)

    文章目录 主从复制原理 1.主节点 binary log dump 线程 2.从节点I/O线程 3.从节点SQL线程 主从复制过程 异步模式(mysql async-mode) 半同步模式(mysql ...

  9. Mysql主从复制的三种同步方式和半同步复制配置

    目录 一.MySQL主从复制的三种同步模式 1.异步复制(Asynchronous replication) 2.全同步复制(Fully synchronous replication) 3.半同步复 ...

最新文章

  1. objective-c系列-单例
  2. [PHP] 编写爬虫获取淘宝网上所有的商品分类以及关键属性 销售属性 非关键属性数据...
  3. 两个列表合并去重_花生AI论文去重V1.4更新合并查同义词功能
  4. 机器学习理论《统计学习方法》学习笔记:第二章 感知机
  5. 10倍性能提升!DLA SQL推出基于Alluxio的数据湖分析加速功能
  6. Mysql实现主从复制(一主双从)
  7. C#关键字(79个)
  8. 让CSS兼容IE和Firefox的技巧集合
  9. 疑似一加7 Pro 5G版通过3C认证:配备30W快充头
  10. 基于高斯分布和OneClassSVM的异常点检测
  11. Django-admin源码流程
  12. (Quicker动作)MathType公式快速标红
  13. Vegas2020注册机
  14. php xheditor 上传图片,codeigniter整合xheditor之后,xheditor上图片问题
  15. 解决virtualbox虚拟机unbuntu20.04无法识别u盘、sd卡
  16. 苹果手机语音备忘录在哪_苹果手机备忘录被家里宝宝误删了如何恢复呢?
  17. 基于python的微博热搜爬取及数据分析
  18. 网友微博晒父母爱情 老爸每天给妈妈写情书
  19. python (与C的差别)
  20. 密码学基础(二)单表---置换密码 凯撒密码 棋盘密码 乘法密码 仿射密码 多表---vigenere方阵

热门文章

  1. 开源IT从业者最受欢迎5大技能
  2. Python 的电子邮件编程
  3. 中年架构师的20个小时,全靠忍!
  4. 厉害了,如何通过双 key 来解决缓存并发问题?
  5. 记一次悲惨的 Excel 导出事件
  6. 用Nginx+Lua(OpenResty)开发高性能Web应用
  7. 多个线程同时运行,顺序打印问题
  8. linux exec 二程序,二十五、Linux 进程与信号---exec函数
  9. 怎么打公式_迫真公式部~注入之里技
  10. 一流大学计算机专业都用什么教材,高校IT教材严重落后_网易科技报道