mysql-8.0.x搭建主从

概述

master/slave用作备库的形式数据库的可用性

开干

env

  • centos7.x 2c4g x2
  • mysql 8.0.28

x01、mysql安装

x02、修改my.cnf

master

[mysql]
auto-rehash
default-character-set = utf8mb4
connect-timeout = 3

[mysqld]
server-id = 7670
port = 3306

#base
basedir = /servyou/mysql
datadir = /servyou/mysql_data

#innodb
default-storage-engine = INNODB
innodb_buffer_pool_size = 2G

#set character
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

#optimazed
skip-name-resolve

#default_authentication_plugin = mysql_native_password
authentication_policy = mysql_native_password

max_allowed_packet = 250M
lower_case_table_names = 1
max_connections = 2000
max_user_connections = 1500
explicit_defaults_for_timestamp = true
default-time-zone = system

#log
binlog_format = ROW
log-bin = mysql-bin
max_binlog_size = 1G
#expire_logs_days = 30
binlog_expire_logs_seconds = 2592000
slow_query_log = 1
long-query-time = 30
log_timestamps = SYSTEM
log_bin_trust_function_creators = 1

#master/slave optimized
gtid_mode = ON
enforce_gtid_consistency = ON
#log_slave_updates = 1    --deprecated
log_replica_updates = 1
#slave-parallel-workers = 4  --deprecated
replica_parallel_workers = 4
relay-log = relay-bin

#read_only = 1
#super_read_only = 1

[mysqld_safe]
socket = /servyou/mysql_data/mysql.sock
log-error = /servyou/mysql_data/mysql_error.log
pid-file = /servyou/mysql_data/mysqld.pid

slave

[mysql]
auto-rehash
default-character-set = utf8mb4
connect-timeout = 3

[mysqld]
server-id = 76701  ### master/salve 不能一样
port = 3306

#base
basedir = /servyou/mysql
datadir = /servyou/mysql_data

#innodb
default-storage-engine = INNODB
innodb_buffer_pool_size = 2G

#set character
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

#optimazed
skip-name-resolve

#default_authentication_plugin = mysql_native_password
authentication_policy = mysql_native_password

max_allowed_packet = 250M
lower_case_table_names = 1
max_connections = 2000
max_user_connections = 1500
explicit_defaults_for_timestamp = true
default-time-zone = system

#log
binlog_format = ROW
log-bin = mysql-bin
max_binlog_size = 1G
#expire_logs_days = 30
binlog_expire_logs_seconds = 2592000
slow_query_log = 1
long-query-time = 30
log_timestamps = SYSTEM
log_bin_trust_function_creators = 1

#master/slave optimized
gtid_mode = ON
enforce_gtid_consistency = ON
#log_slave_updates = 1    --deprecated
log_replica_updates = 1
#slave-parallel-workers = 4  --deprecated
replica_parallel_workers = 4
relay-log = relay-bin

### slave要开启禁止写
read_only = 1
super_read_only = 1

[mysqld_safe]
socket = /servyou/mysql_data/mysql.sock
log-error = /servyou/mysql_data/mysql_error.log
pid-file = /servyou/mysql_data/mysqld.pid

x03、创建repl账户及开启复制通道

create user on master

create user 'repl'@'172.%' identified by '123456';
grant replication slave on *.* to 'repl'@'172.%';
flush privileges;

on master

show master status;
SHOW BINARY LOGS;
show slave hosts;

open replication channel

#第一次安装pos ->FIRST
CHANGE MASTER TO
MASTER_HOST='192.168.211.128',
MASTER_USER='repl',
MASTER_PASSWORD='mysql',
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1;

#从特定的pos开始复制
change MASTER to MASTER_HOST = '172.24.20.22',
MASTER_USER = 'repl',
MASTER_PASSWORD = '123456',
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 834;

start slave

start slave;
show slave status\G;

x04、测试主从复制

#slave测试,是否可以创建表及库

#master测试,进入创建库及表,看看slave节点是否有对应的数据
posted @ 2023-03-12 19:12  mvpbang  阅读(83)  评论(0编辑  收藏  举报