主从复制
https://dev.mysql.com/doc/refman/5.7/en/replication.html
复制解决的基本问题是让一台服务器的数据与其他服务器保持同步;一台主库的数据可以同步到多台备库上,可以同步全部数据,可以同步某个库或表。
备库本身也可以被配置成另外一台服务器的主库。
原理:主库写二进制日志文件(Binary Log),备库读主库的二进制日志文件。
工作过程:
1 主库把数据更改记录到二进制日志。
2 备库将主库上的日志复制到自己的中继日志(Relay Log)。
3 备库读取中继日志中的事件,将其重放(redo)到备库数据之上。
配置步骤:
https://dev.mysql.com/doc/refman/5.7/en/replication-howto.html
1 创建复制账号(主库)
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO repl@'192.168.235.%' IDENTIFIED BY '123456wyy';
2 配置主库和备库
主库: my.cnf ,重启
log_bin = mysql-bin #二进制日志
server_id = 161 # 集群中server_id 不能重复
从库: my.cnf
server_id = 162
(将主库或者备库的UUID进行修改/data/auto.cnf)
3 通知备库连接到主库并从主库复制数据。
#设置备库参数
CHANGE MASTER TO MASTER_HOST='192.168.235.102', #设置主库的host
MASTER_USER = 'repl',
MASTER_PASSWORD = '123456wyy',
MASTER_LOG_FILE = 'mysql-bin.000006', # 主库的 log文件名 通过在主库中执行 show master status 获取 文件名
MASTER_LOG_POS = 474; # log 位置(Position) 通过在主库中执行 show master status 获取 文件名
#启动
START SLAVE;
相关命令:
show master status\G 显示主库状态
*************************** 1. row ***************************
File: mysql-bin.000004 #主库使用的binlog 文件
Position: 1061 #主库binlog日志位置
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
show slave status\G 显示备库状态
Slave_IO_State: Waiting for master to send event
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 1061
Last_Errno:
Last_Error:
start slave;
开启复制
stop slave;
停止复制
- 重要文档
- 工作须知
- 项目下的公共方法
- 程序员给代码写注释时有哪些讲究!
- RestFul 讲解
- 其他知识
- docker容器
- MongoDB的使用
- Node.js的使用
- Session共享
- Wordpress的使用
- Websocket的简介
- Ajax
- 项目技术
- Https配置证书
- Nginx的反向代理
- MySQL读写分离配置(laravel篇)
- Nginx的负载均衡
- App接口返回格式
- laravel中JWT的应用
- laravel验证码的使用
- laravel公共方法文件
- laravel框架的RBAC
- Git相关
- Git篇1
- Git篇2
- Mysql相关
- Mysql的主从复制
- MySQL的备份
- MySQL的使用
- 请求第三方接口
- Redis相关
- redis的使用
- Redis的基本用法以及场景分析
- 开发小技巧
- Linux
- 禁用root及密码登录
- Lnmp环境的安装
- 安装composer
- 安装Redis
- 文件共享服务 samba
- 其他安装
- Lnmp常用命令
- 性能检测命令
- Nginx的配置详解
- PHP相关
- PHP基础知识
- php常见的系统函数
- PHP的设计模式
- Cookie 和 Session 的封装
- Mysql知识
- Mysql索引
- MySQL的数据类型
- PHP重要知识
- PHP框架篇
- Laravel框架
- laravel---Excel
- laravel文件上传
- Laravel-Mysql常用操作
- Laravel队列(queue)
- laravel-发送Email
- laravel--JWT
- TP框架篇
- tp5主从数据库设置读写分离
- 前端
- JS
- js代码实现点击按钮出现60秒倒计时
- 开发软件相关
- 代码编辑器
- vs code配置ftp连接远程服务器实现代码文自动上传
- 编程相关软件下载