MySQL8.0.45主从搭建

MySQL8.0.45主从搭建

安装忽略

主库配置

复制代码
# cat /etc/my.cnf
[mysqld]
basedir=/data/mysql-8.0.45
datadir=/data/mysql-8.0.45/data
port=23306
socket=/data/mysql-8.0.45/mysql.sock
log-error=/data/mysql-8.0.45/data/error_mysqld.log
pid-file=/data/mysql-8.0.45/data/mysqld.pid
default-time-zone = +08:00
lc-messages-dir = /data/mysql-8.0.45/share
lc-messages = en_US
server_id=208
log-bin=mysql-bin
binlog_expire_logs_seconds = 604800  #为7天
max_binlog_size = 512M
innodb_buffer_pool_size = 16G
innodb_buffer_pool_instances = 8    # 多实例提高并发
innodb_file_per_table = ON
innodb_max_dirty_pages_pct = 75  # 减少突发刷盘
innodb_log_buffer_size = 64M    # 日志缓冲区大小
innodb_redo_log_capacity = 1G
lower_case_table_names=1

max_connections=1000
wait_timeout=1800
interactive_timeout=1800  #单位s
skip-name-resolve = ON

#主从配置
gtid-mode=ON
enforce-gtid-consistency
log-replica-updates=ON
 

# 密码复杂度
#validate_password.policy = 1
#validate_password.length = 10
#validate_password.number_count = 1
#validate_password.mixed_case_count = 1
#validate_password.special_char_count = 1
#validate_password.check_user_name = ON

# 加载连接控制插件
#plugin-load-add=connection_control.so
# 强制永久启用(无法卸载,重启丢失)
#connection-control=FORCE_PLUS_PERMANENT
#connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT

# 安全策略(等保推荐)
#connection_control_failed_connections_threshold=5  # 失败5次触发延迟
#connection_control_min_connection_delay=1000       # 最小延迟1秒
#connection_control_max_connection_delay=60000      # 最大延迟60秒

# 锁相关优化
innodb_lock_wait_timeout = 50      # 锁等待超时时间
innodb_deadlock_detect = ON        # 死锁检测
innodb_print_all_deadlocks = ON    # 记录所有死锁信息
# 慢查询日志
slow_query_log = ON
slow_query_log_file =/data/mysql/data/slow.log
long_query_time = 2
# 临时表存储在内存(避免磁盘临时表)
tmp_table_size = 64M
max_heap_table_size = 64M
innodb_temp_data_file_path=ibtmp1:12M:autoextend:max:12G

[mysql]
socket=/data/mysql/mysql.sock

[client]
socket=/data/mysql/mysql.sock

从库配置

复制代码
# cat /etc/my.cnf 
[mysqld]
basedir=/data/mysql-8.0.45
datadir=/data/mysql-8.0.45/data
port=23306
socket=/data/mysql-8.0.45/mysql.sock
log-error=/data/mysql-8.0.45/data/error_mysqld.log
pid-file=/data/mysql-8.0.45/data/mysqld.pid
default-time-zone = +08:00
lc-messages-dir = /data/mysql-8.0.45/share
lc-messages = en_US
server_id=82
log-bin=mysql-bin
binlog_expire_logs_seconds = 604800  #为7天
max_binlog_size = 512M
innodb_buffer_pool_size = 16G
innodb_buffer_pool_instances = 8    # 多实例提高并发
innodb_file_per_table = ON
innodb_max_dirty_pages_pct = 75  # 减少突发刷盘
innodb_log_buffer_size = 64M    # 日志缓冲区大小
innodb_redo_log_capacity = 1G
lower_case_table_names=1

max_connections=1000
wait_timeout=1800
interactive_timeout=1800  #单位s
skip-name-resolve = ON

##主从配置
gtid_mode=ON
enforce-gtid-consistency=ON
relay-log=relay-bin
log-replica-updates=ON

replicate_wild_ignore_table  = mysql.%
replicate_wild_ignore_table  = sys.%
replicate_wild_ignore_table  = information_schema.%
replicate_wild_ignore_table  = performance_schema.%

##从库设置只读
#read_only = 1
#super_read_only = 1

# 密码复杂度
#validate_password.policy = 1
#validate_password.length = 10
#validate_password.number_count = 1
#validate_password.mixed_case_count = 1
#validate_password.special_char_count = 1
#validate_password.check_user_name = ON

# 加载连接控制插件
#plugin-load-add=connection_control.so
# 强制永久启用(无法卸载,重启丢失)
#connection-control=FORCE_PLUS_PERMANENT
#connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT

# 安全策略(等保推荐)
#connection_control_failed_connections_threshold=5  # 失败5次触发延迟
#connection_control_min_connection_delay=1000       # 最小延迟1秒
#connection_control_max_connection_delay=60000      # 最大延迟60秒
 
# 锁相关优化
innodb_lock_wait_timeout = 50      # 锁等待超时时间
innodb_deadlock_detect = ON        # 死锁检测
innodb_print_all_deadlocks = ON    # 记录所有死锁信息
# 慢查询日志
slow_query_log = ON
slow_query_log_file =/data/mysql-8.0.45/data/slow.log
long_query_time = 2
# 临时表存储在内存(避免磁盘临时表)
tmp_table_size = 64M
max_heap_table_size = 64M
innodb_temp_data_file_path=ibtmp1:12M:autoextend:max:12G
[mysql]
socket=/data/mysql-8.0.45/mysql.sock

[client]
socket=/data/mysql-8.0.45/mysql.sock

主从库创建同步用户

复制代码
SQL> create user repl@'%' identified with 'mysql_native_password' by 'repl@123';

SQL> grant replication slave on *.* to 'repl'@'%';

SQL> exit;

从库执行

复制代码
CHANGE REPLICATION SOURCE TO 
SOURCE_HOST='10.10.1.1',
SOURCE_PORT=23306, 
SOURCE_USER='repl', 
SOURCE_PASSWORD='repl@123',
SOURCE_AUTO_POSITION = 1,
GET_SOURCE_PUBLIC_KEY=1;

start replica;
show replica status\G
相关推荐
陈卿诺语2 天前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
sql·mysql·adb
2501_915921433 天前
抓包鹰 Traceeagle 解除证书绑定,SSL Pinning 解除
网络·网络协议·网络安全·ios·adb·https·ssl
Zhu7584 天前
使用helm在k8s集群部署MySQL单实例,支持当前所有主版本的最新子版本
mysql·adb·kubernetes
小乌龟打怪升级5 天前
adb 详解
adb
雨声不在5 天前
USB 网络共享 + adb 无权限问题排查
adb
王琦03186 天前
第二章 MySQL集群高可用架构
mysql·adb·架构
深念Y6 天前
hotspot-adb-research
linux·数据库·adb·emmc·随身wifi·移动终端
小Ti客栈7 天前
MySQL查询原理:从Server到InnoDB
android·mysql·adb
深念Y7 天前
老Flyme 官方 root 开启 ADB TCP 方案
linux·数据库·网络协议·tcp/ip·adb·智能手机·emmc
00后程序员张8 天前
抓包鹰 电脑本机网络连接表怎么看?哪些程序在联网 进程归属与可疑 IP 追溯
网络协议·计算机网络·网络安全·ios·adb·https·udp