MySQL主从搭建(多主一从)的实现思路与步骤
网络编程 2021-07-05 14:37www.168986.cn编程入门
通过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-------相当于集中库
2mysql 5.7
步骤
1 主库100
设置my.f。
[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.f。
[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.f。
[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主从搭建内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
上一篇:MySQL 可扩展设计的基本原则
下一篇:MySQL如何构建数据表索引
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南