mysql 8.4.2 主从配置

mysql 8.4.2 主从配置

背景知识

密码方式

mysql 的默认的密码方式"caching_sha2_password",以前常用的“mysql_native_password”方式在mysql v8.4中是disabled。使用“caching_sha2_password” 做主从的时候是比较复杂的,需要开启ssl,所以开启“mysql_native_password”是一个偷懒的选择。

log-bin

用docker启动master和slave

docker-compose.yml:

services:
  master:
    image: mysql:8.4.2
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: your_password
    volumes:
      - ./master/data:/var/lib/mysql
      - ./master/log:/var/log
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --mysql_native_password=on # 指定密码方式
      --server-id=1
      --log-bin=binlog
      --binlog_do_db=test # 可以指定多个数据库,逗号分割,或者删除这一条目,不做限制      
    restart: always
  slave:
    image: mysql:8.4.2
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: your_password
    volumes:
      - ./slave/data:/var/lib/mysql
      - ./slave/log:/var/log
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --mysql_native_password=on
      --server-id=2
      --log-bin=binlog
    restart: always

执行:

sudo docker-compose up -d

master 配置

# 创建可以进行备份的账户
CREATE USER 'repl'@'%' IDENTIFIED with mysql_native_password BY 'repl-password';
# CREATE USER 'repl'@'%' IDENTIFIED with caching_sha2_password BY 'repl-password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
# 查看LOG信息
SHOW BINARY LOG STATUS;
# 查看server-id
show variables like '%server%';

slave配置

# 启动备份服务
STOP REPLICA;
RESET REPLICA;  
# 指向master
CHANGE REPLICATION SOURCE TO 
	SOURCE_USER='repl', 
	SOURCE_PASSWORD='repl-password', 
	SOURCE_HOST='10.200.60.99',
	SOURCE_PORT=3306,
	SOURCE_LOG_FILE='binlog.000005',
	SOURCE_LOG_POS=1735,
	SOURCE_SSL = 1; # 使用caching_sha2_password,需要开启
	
# 启动从机	
START REPLICA;
# 查看从机状态,Replica_IO_Runing && Replica_SQL_Runing == true, 代表配置成功,就可以操作验证了。
SHOW REPLICA STATUS;
# 查看server-id
show variables like '%server%';

gtid

用docker启动master和slave

docker-compose.yml:

services:
  master:
    image: mysql:8.4.2
    ports:
      - "3310:3306"
    environment:
      MYSQL_ROOT_PASSWORD: your_password
    volumes:
      - ./master/data:/var/lib/mysql
      - ./master/log:/var/log
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --mysql_native_password=on
      --gtid_mode=ON
      --enforce_gtid_consistency=true
      --server_id=1
      --log-bin=binlog
      --binlog_format=row
      --log-slave-updates=1
    restart: always
  slave:
    image: mysql:8.4.2
    ports:
      - "3311:3306"
    environment:
      MYSQL_ROOT_PASSWORD: your_password
    volumes:
      - ./slave/data:/var/lib/mysql
      - ./slave/log:/var/log
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --gtid_mode=ON
      --enforce_gtid_consistency=true
      --server_id=2
      --log-bin=biglog
      --binlog_format=row
      --log-slave-updates=1
    restart: always

执行:

sudo docker-compose up -d

master 配置

# 创建可以进行备份的账户
CREATE USER 'repl'@'%' IDENTIFIED with mysql_native_password BY 'repl-password';
# CREATE USER 'repl'@'%' IDENTIFIED with caching_sha2_password BY 'repl-password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
# 查看LOG信息
SHOW BINARY LOG STATUS;
# 查看server-id
show variables like '%server%';

slave配置

# 启动备份服务
STOP REPLICA;
RESET REPLICA;  
# 指向master
CHANGE REPLICATION SOURCE TO 
	SOURCE_USER='repl', 
	SOURCE_PASSWORD='repl-password', 
	SOURCE_HOST='10.200.60.99',
	SOURCE_PORT=3310,
	SOURCE_AUTO_POSITION=1,
	SOURCE_SSL = 1; # 使用caching_sha2_password,需要开启
	
# 启动从机	
START REPLICA;
# 查看从机状态,Replica_IO_Runing && Replica_SQL_Runing == true, 代表配置成功,就可以操作验证了。
SHOW REPLICA STATUS;
# 查看server-id
show variables like '%server%';
MySQL是一个流行的开源关系型数据库管理系统,用于存储、检索和管理大量的数据。截至我所知的信息,MySQL的最新稳定版本并不是8.4.2,而是8.0系列。因此,我将介绍如何在常见的操作系统上安装MySQL 8.0版本。如果您确实需要安装8.4.2版本,请检查是否有这个版本的官方发布,并遵循相应的安装指南。 在Linux系统上安装MySQL 8.0的步骤大致如下: 1. 添加MySQL仓库: 在基于Debian的系统(如Ubuntu)上,您可以使用以下命令添加官方MySQL仓库: ``` wget https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb dpkg -i mysql-apt-config_0.8.14-1_all.deb ``` 在基于Red Hat的系统(如CentOS)上,您可以使用以下命令添加官方MySQL仓库: ``` sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm ``` 2. 安装MySQL服务器: 在添加了MySQL仓库之后,您可以使用包管理器安装MySQL服务器。对于基于Debian的系统,使用以下命令: ``` sudo apt-get update sudo apt-get install mysql-server ``` 对于基于Red Hat的系统,使用以下命令: ``` sudo yum install mysql-community-server ``` 3. 启动MySQL服务: 安装完成后,您可以使用以下命令启动MySQL服务: ``` sudo systemctl start mysqld ``` 4. 查找临时生成的root密码: 在首次启动MySQL服务器时,它会自动生成一个临时的root密码,您可以使用以下命令查看该密码: ``` sudo grep 'temporary password' /var/log/mysqld.log ``` 5. 安全设置MySQL: 使用上面获取的临时密码登录MySQL,然后运行安全安装脚本来设置root密码、移除匿名用户、禁止root远程登录等: ``` sudo mysql_secure_installation ``` 6. 登录MySQL: 完成安全设置后,您可以使用新设置的密码登录MySQL: ``` mysql -u root -p ``` 对于Windows系统,您可以直接下载MySQL Community Server的Windows安装程序,并执行以下步骤: 1. 运行下载的安装程序。 2. 选择安装类型,例如“典型”或“自定义”。 3. 按照安装向导的指示完成安装。 4. 启动MySQL服务,并可能需要设置root用户的密码。 在Mac OS上,您可以使用Homebrew安装MySQL: 1. 首先安装Homebrew(如果尚未安装)。 2. 使用Homebrew安装MySQL: ``` brew update brew install mysql ``` 3. 启动MySQL服务: ``` brew services start mysql ``` 请注意,上述步骤是概括性的,并且具体的命令可能会根据不同的MySQL版本或操作系统版本有所变化。在进行安装之前,请务必查看官方文档以获取最准确的安装指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值