mysql一主两从架构(MySQL主从搭建多主一从的实现思路与步骤)
类别:数据库 浏览量:1016
时间:2021-10-08 00:34:25 mysql一主两从架构
MySQL主从搭建多主一从的实现思路与步骤背景:
由于最近公司项目好像有点受不住并发压力了,优化迫在眉睫。由于当前系统是单数据库系统原因,能优化的地方也尽力优化了但是数据库瓶颈还是严重限制了项目的并发能力。所以就考虑了添加数据库来增大项目并发能力。
思路:
1: 创建集中库: 主要就是存储历史数据。作为查询使用。
2:创建多个业务库:满足项目高并发的能力。
demo环境:
1: VM ware 虚拟机 - centOS 7
centOS-1: 192.168.194.3 主 100-------业务库
centOS-2: 192.168.194.4 主 200-------业务库
centOS-3: 192.168.194.5 从 300-------相当于集中库
2:mysql 5.7
步骤
1: 主库100
设置my.cnf。
|
[mysqld] lower_case_table_names = 1 # 表名不区分大小写 server- id = 100 log_bin = mysql-bin #开始binlog记录 binlog_format = MIXED #每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设置。 #这样的话,在数据库所在的主机操作系统损坏或者突然掉电的情况下,系统才有可能丢失1个事务的数据 #但是binlog虽然是顺序IO,但是设置sync_binlog=1,多个事务同时提交, #同样很大的影响MySQL和IO性能。按需设置。 sync_binlog = 1 # 二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。 expire_logs_days = 7 #binlog_cache_size = 128m #max_binlog_cache_size = 512m #max_binlog_size = 256M # 需要同步库 binlog- do -db = dev # 不需要同步库 binlog-ignore-db = mysql binlog_ignore_db = information_schema binlog_ignore_db = performation_schema binlog_ignore_db = sys datadir= /var/lib/mysql |
设置slave用户
|
# mysql -uroot -p # password: xxxxxx # mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'root1234'; # mysql> flush privileges; # quit; # systemctl restart mysqld; # show master status \G #*************************** 1. row *************************** File: mysql-bin.000001 Position: 886 Binlog_Do_DB: dev Binlog_Ignore_DB: mysql,information_schema,performation_schema,sys Executed_Gtid_Set: 1 row in set (0.00 sec) |
2: 主库200
设置my.cnf。
|
[mysqld] lower_case_table_names = 1 # 表名不区分大小写 server- id = 200 log_bin = mysql-bin #开始binlog记录 binlog_format = MIXED #每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设置。 #这样的话,在数据库所在的主机操作系统损坏或者突然掉电的情况下,系统才有可能丢失1个事务的数据 #但是binlog虽然是顺序IO,但是设置sync_binlog=1,多个事务同时提交, #同样很大的影响MySQL和IO性能。按需设置。 sync_binlog = 1 # 二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。 expire_logs_days = 7 #binlog_cache_size = 128m #max_binlog_cache_size = 512m #max_binlog_size = 256M # 需要同步库 binlog- do -db =dev # 不需要同步库 binlog-ignore-db = mysql binlog_ignore_db = information_schema binlog_ignore_db = performation_schema binlog_ignore_db = sys datadir= /var/lib/mysql |
设置slave用户
|
# mysql -uroot -p # password: xxxxxx # mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'root1234'; # mysql> flush privileges; # quit; # systemctl restart mysqld; # show master status \G #*************************** 1. row *************************** File: mysql-bin.000001 Position: 154 Binlog_Do_DB: dev Binlog_Ignore_DB: mysql,information_schema,performation_schema,sys Executed_Gtid_Set: 1 row in set (0.00 sec) |
3: 从库300
设置my.cnf。
|
[mysqld] lower_case_table_names = 1 # 表名不区分大小写 server- id = 300 master_info_repository = table relay_log_info_repository = table datadir= /var/lib/mysql socket= /var/lib/mysql/mysql .sock symbolic-links=0 log-error= /var/log/mysqld .log pid- file = /var/run/mysqld/mysqld .pid |
设置主库信息
|
# mysql -uroot -p # password: xxxxxx # 设置主库信息 # mysql> CHANGE MASTER TO # ->MASTER_HOST='192.168.194.3', # ->MASTER_PORT=3306, MASTER_USER='slave', # ->MASTER_PASSWORD='root1234', # ->MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=886 for channel '100'; # mysql> CHANGE MASTER TO # ->MASTER_HOST='192.168.194.4', # ->MASTER_PORT=3306, MASTER_USER='slave', # ->MASTER_PASSWORD='root1234', # ->MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154 for channel '200'; # 设置主库信息 # mysql> flush privileges; # start slave; # mysql>show slave status \G |
标识同步成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
测试。
随意主库:创建表,插入一条数据。
|
CREATE TABLE `t_user` ( `id` varchar (32) NOT NULL COMMENT '主键ID' , ` name ` varchar (32) CHARACTER SET utf8mb4 NULL COMMENT '用户名称' , `code` varchar (32) CHARACTER SET utf8mb4 NULL COMMENT '用户编码' , `phone_number` varchar (300) CHARACTER SET utf8mb4 NULL COMMENT '电话号码' , `create_date` datetime NULL COMMENT '创建时间' , `update_date` datetime NULL COMMENT '修改时间' , PRIMARY KEY (`id`) ) COMMENT = '用户信息表' ; INSERT INTO t_user (`id`, ` name `, `code`, `phone_number`, `create_date`, `update_date`) VALUES ( 'userId_4' , '张三' , '123456789' , '123456789632' , '2020-04-27 22:05:00' , '2020-04-27 22:05:00' ); |
从库查询
|
SELECT * FROM t_user; ------+--------+----------+--------------+---------------------+-------------+ | id | name | code | phone_number | create_date | update_date | + -------+--------+----------+--------------+---------------------+----------+ | userId_4 | 张三 |123456789|123456789632|2020-04-27 22:05:00|2020-04-27 22:05:00 |
总结
到此这篇关于MySQL主从搭建(多主一从)的实现思路与步骤的文章就介绍到这了,更多相关MySQL主从搭建内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/wangsdsdfds/article/details/105809232
您可能感兴趣
- windows7mysql服务无法启动(Windows系统下MySQL无法启动的万能解决方法)
- mysql 死锁查询(MySQL slave 延迟一列 外键检查和自增加锁)
- 忘记mysql密码怎么登录(Mysql用户忘记密码及密码过期问题的处理方法)
- mysql 查询出来的字段拼接(mysql 多个字段拼接的实例详解)
- mysql用户删除了如何设置(MySQL两种删除用户语句的区别delete user和drop user)
- mysql主从复制原理详解(详解MySQL kill 指令的执行原理)
- mysql中如何设置多个主键(Mysql 增加主键或者修改主键的sql语句操作)
- mysql什么是慢查询(MySQL慢查询的坑)
- 对mysql索引的理解(详解MySQL 8.0 之不可见索引)
- mysql程序中判断select返回空值(解决MySQL读写分离导致insert后select不到数据的问题)
- mysql修改表结构的关键字(查看修改MySQL表结构命令)
- mysql查询count很慢(MySQL COUNT函数的使用与优化)
- idea配置mysql最大连接数(IDEA连接不上MySQL端口号占用的解决)
- mysql explain的用法
- mysql常见错误分析(分析MySQL抛出异常的几种常见解决方式)
- navicat15激活页面不显示(Navicat for MySQL 15注册激活详细教程)
- 盘点那些年让人称奇的年终奖 最后一个赢辣条毫无悬念(盘点那些年让人称奇的年终奖)
- 你还没有升职吗 他竟因为几套激励理论,升职了(你还没有升职吗)
- 某知名企业绩效管理体系及薪酬分配体系操作手册(某知名企业绩效管理体系及薪酬分配体系操作手册)
- 职场人改不掉这4个习惯,只会越混越穷,一辈子也翻不了身(职场人改不掉这4个习惯)
- 华为 联想等46家公司笔试面试题,涉及各行各业,建议收藏(联想等46家公司笔试面试题)
- ()
热门推荐
- laravel模型使用技巧(提高Laravel应用性能方法详解)
- dedecms怎么调用标签(dedecms日期调用详细说明)
- 图片热点链接的设置
- idea docker使用(最新IDEA快速实现Docker镜像部署运行的过程详解)
- python拖动选择文件操作(python通过paramiko复制远程文件及文件目录到本地)
- sql中的条件判断查询(SQL 多条件查询几种实现方法详细介绍)
- dedecms自定义字段(详解怎么样让DEDECMS的list标签支持weight排序的方法)
- dede织梦cms安装教程(开源织梦dedecms快速搬家图文教程)
- sqlserver查看表和存储过程的架构(SQL Server 远程更新目标表数据的存储过程)
- 织梦源码安装数据库怎么填(Mysql修改端口号 织梦DedeCMS设置教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9