这篇文章给大家分享的是有关MySQL主从搭建的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。背景:由于最近公司项目好像有点受不住并发压力了,优化迫在眉睫。由于当前系统是单数据库系统原因,能优化的地方也尽力
这篇文章给大家分享的是有关MySQL主从搭建的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
由于最近公司项目好像有点受不住并发压力了,优化迫在眉睫。由于当前系统是单数据库系统原因,能优化的地方也尽力优化了但是数据库瓶颈还是严重限制了项目的并发能力。所以就考虑了添加数据库来增大项目并发能力。
创建集中库: 主要就是存储历史数据。作为查询使用。
创建多个业务库:满足项目高并发的能力。
centOS-1: 192.168.194.3 主 100-------业务库
centOS-2: 192.168.194.4 主 200-------业务库
centOS-3: 192.168.194.5 从 300-------相当于集中库
Mysql 5.7
主库100
设置my.cnf。
[mysqld]lower_case_table_names = 1 # 表名不区分大小写server-id = 100log_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 = mysqlbinlog_ignore_db = information_schemabinlog_ignore_db = performation_schemabinlog_ignore_db = sysdatadir=/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,sysExecuted_Gtid_Set: 1 row in set (0.00 sec)
2: 主库200
设置my.cnf。
[mysqld]lower_case_table_names = 1 # 表名不区分大小写server-id = 200log_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 = mysqlbinlog_ignore_db = information_schemabinlog_ignore_db = performation_schemabinlog_ignore_db = sysdatadir=/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,sysExecuted_Gtid_Set: 1 row in set (0.00 sec)
3: 从库300
设置my.cnf。
[mysqld]lower_case_table_names = 1 # 表名不区分大小写 server-id = 300master_info_repository = tablerelay_log_info_repository = table datadir=/var/lib/mysqlSocket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.logpid-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主从搭建的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
--结束END--
本文标题: MySQL主从搭建的示例分析
本文链接: https://www.lsjlt.com/news/276679.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0