MySQL - 主从复制
什么是主从复制
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。
并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。
原理
复制的三步骤
- master将改变记录到二进制日志。这些记录过程叫做二进制日志事件,binary log events
- slave将master的binary log events拷贝到它的中继日志
- slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的且串行的
复制的基本原则
- 每个slave只有一个master
- 每个slave只能有一个唯一的服务器ID
- 每个master可以有多个salve
一主一从常见配置
MySQL版本一致且后台服务可以运行
主从主机可以相互通信
主从配置都在[mysqld]结点下,都是小写
主从机配置文件
主机配置文件-my.ini
server-id = 1 # [必须]主服务器唯一ID
log-bin = 自己本地的路径/mysqlbin # [必须]启用二进制日志
log-err = 自己本地的路径/mysqlerr # [可选] 启用错误日志
从机配置文件-mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 1 # [必须]主服务器唯一ID
log-bin = 自己本地的路径/mysqlbin # [可选]启用二进制日志
修改过配置文件之后,要重启MySQL服务
service mysql restart
主从都关闭防火墙
service iptables stop
在Windows主机上建立账户并授权slave
grant replication slave on *.* to 'zhangsan'@'从机数据库IP' identified by '12345
6';
show master status;
记录下File和position的值
配置Linux从机
change master to master_host = '192.168.0.161',
master_user = 'juran',
master_password = '123',
master_log_file = 'binlog.000004',
master_log_pos= 908;
测试是否配置成功
start slave; 启动从服务器复制功能
show slave status\G
下面两个参数都是yes,则说明主从配置成功
slave_io_running:yes
slave_sql_running:yes
上一篇: python学习笔记:基本图形绘制
下一篇: OpenCV——绘制基本图形
推荐阅读
-
Navicat连接mysql报错1862
-
mybatis批量insert数据动态表明(mysql批量insert正确方式)
-
[视频教程] ubuntu系统下安装最新版的MySQL
-
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
-
在Windows系统上搭建Nginx+Python+MySQL环境的教程
-
PHP Swoole异步MySQL客户端实现方法示例
-
详解Spring Boot Mysql 版本驱动连接池方案选择
-
APMServ一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP运行平台教程
-
MySQL Embedded程序启动成功实验
-
Python实现简单的文件传输与MySQL备份的脚本分享