MySQL 3主集群搭建
2025/1/2 21:03:14
本文主要是介绍MySQL 3主集群搭建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
由于工作需要,搭建了一套MySQL3主集群。集群使用了MySQL 8.0,在3台Redhat 8.10上完成的搭建。过程如下:
直接官网下载mysql数据库
上传到服务器,解压然后执行 yum localinstall *.rpm
修改数据库配置文件/etc/my.cnf
:
[mysqld] server-id=1133 # 集群中每个节点id值唯一,如第一个1133,第二个1134,第三个1135 port=3306 datadir=/data/mysql socket=/var/lib/mysql/mysql.sock lower_case_table_names=1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION symbolic-links=0 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid long_query_time=2 slow_query_log_file=/var/log/mysql_slowsql.log slow_query_log=1 log-queries-not-using-indexes=off default_authentication_plugin=mysql_native_password max_connections=1000 max_connect_errors=6000 thread_cache_size=32 log_bin_trust_function_creators=TRUE group_concat_max_len=102400 skip_ssl table_open_cache=614 external-locking=FALSE sort_buffer_size=2M join_buffer_size=2M read_buffer_size=1M thread_cache_size=300 thread_stack=192K transaction_isolation=READ-COMMITTED tmp_table_size=256M max_heap_table_size=256M myisam_sort_buffer_size=128M myisam_max_sort_file_size=10G innodb_buffer_pool_size=2048M innodb_thread_concurrency=4 innodb_flush_log_at_trx_commit=2 innodb_log_buffer_size=16M # innodb_log_file_size=128M innodb_redo_log_capacity = 1G # 设置适当的值,视具体需求而定 innodb_log_files_in_group=3 innodb_max_dirty_pages_pct=90 innodb_lock_wait_timeout=120 innodb_file_per_table=0 log-bin=binlog #binlog-format=Row binlog-format=ROW binlog_cache_size=4M max_binlog_cache_size=512M max_binlog_size=512M # bin log 保留时间 expire_logs_days=7 auto_increment_offset=1 # 节点1为1,节点2为2,节点3为3 auto_increment_increment=3 # 集群自增长的步长,一般等于节点数 binlog-format=mixed # 通过 GTID(全局事务 ID)实现自动定位,简化复制配置 gtid_mode=ON enforce_gtid_consistency=ON # 每台主机都需要充当主从角色,因此需要启用 relay log(中继日志) relay_log=relay-bin # 避免数据循环传播(即自己写的数据被再次同步回自己) log_slave_updates=ON # MySQL 的多源复制可以使用多个 SQL 线程并行处理事务 slave_parallel_type=LOGICAL_CLOCK slave_parallel_workers=4 # 根据 CPU 核数调整,建议 4 或以上 # 增加中继日志的处理效率 sync_relay_log=1 sync_relay_log_info=1 # 中继日志清理 防止中继日志占用过多空间 relay_log_purge=ON # 主从间网络优化 确保网络连接可靠性,配置超时 net_read_timeout=60 net_write_timeout=60
配置集群同步
三台机分别安装MySQL数据库,设置如上的参数,然后启动数据库systemctl start mysqld,然后修改数据库密码:
more /var/log/mysqld.log |grep temp # 将会显示数据库密码 # 修改数据库密码 alter user 'root'@'localhost' identified by 'Password!'; # 创建数据库复制所用的账号 CREATE USER 'repl'@'%' IDENTIFIED BY 'Password!'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
配置数据库复制,节点1将从节点2和节点3复制(执行第2条和第3条),节点2将从节点1和节点3复制,节点3类似:
# 从节点1复制 CHANGE MASTER TO MASTER_HOST='192.168.1.133', MASTER_USER='repl', MASTER_PASSWORD='Password!', MASTER_AUTO_POSITION=1 FOR CHANNEL 'node1'; START REPLICA FOR CHANNEL 'node1'; # 从节点2复制 CHANGE MASTER TO MASTER_HOST='192.168.1.134', MASTER_USER='repl', MASTER_PASSWORD='Password!', MASTER_AUTO_POSITION=1 FOR CHANNEL 'node2'; START REPLICA FOR CHANNEL 'node2'; # 从节点3复制 CHANGE MASTER TO MASTER_HOST='192.168.1.135', MASTER_USER='repl', MASTER_PASSWORD='Password!', MASTER_AUTO_POSITION=1 FOR CHANNEL 'node3'; START REPLICA FOR CHANNEL 'node3';
查询节点状态Show slave status\G",每个通道 Slave_SQL_Running 和 Slave_IO_Running 都为Yes则为正常状态:
mysql -uroot -p -e "Show slave status\G" | grep -E "Slave_IO_Running:|Slave_SQL_Running:" Enter password: Slave_IO_Running: Yes Slave_SQL_Running: Yes Slave_IO_Running: Yes Slave_SQL_Running: Yes
同步测试
可以在任何一台数据库中执行数据库修改语句,在其他库中查询数据库更改:
mysql> create database test11; Query OK, 1 row affected (0.00 sec)
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test11 | +--------------------+ 5 rows in set (0.01 sec)
这篇关于MySQL 3主集群搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南