安装

老规矩先上安装脚本,基于官网的rpm包安装:

#!/bin/bash

mkdir mysql_install
cd mysql_install
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar

tar -xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar

# yum remove mariadb-connector-c-config # fedora上可能需要
rpm -ivh *.rpm

systemctl enable mysqld
systemctl start mysqld

cat /var/log/mysqld.log |grep password

# 使用上面显示的临时密码登录,mysql -u root -p
# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'sEDWqJvBw2HJba@';
# 填入你的密码

主从复制配置

在 MySQL 8 中,配置主从复制主要需要完成以下几个步骤:

配置主库

在主库上修改 MySQL 配置文件 my.cnf,在 [mysqld] 段中增加以下配置:

log-bin=mysql-bin

#启用二进制日志

server-id=1
设置服务器唯一ID(可以设置为ip尾数)

然后重启 MySQL 服务。

创建复制账号

在主库上创建一个专门用于复制的账号,例如:

CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'sEDWqJvBw2HJba#';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

其中,repl和 password 是用于复制的账号和密码,% 表示任意主机都可以连接。

查看主库状态

在主库上执行以下命令,查看主库状态:

SHOW MASTER STATUS;

记录下返回的 FilePosition 值,用于后面在从库上配置。


配置从库

在从库上修改 MySQL 配置文件 my.cnf,在 [mysqld] 段中增加以下配置:

server-id=2
设置服务器唯一 ID,与主库不同

然后重启 MySQL 服务。

开始复制
在从库上执行以下命令,启动复制过程:

CHANGE MASTER TO MASTER_HOST='master_host',MASTER_USER='repl',MASTER_PASSWORD='sEDWqJvBw2HJba#',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1138; 

其中,master_host 是主库的 IP 地址,repl 和 password 是之前创建的复制账号和密码,MASTER_LOG_FILE 和 MASTER_LOG_POS 是在主库上查看到的值。

最后,在从库上执行以下命令,开始复制:

START SLAVE;

至此,主从复制就已经配置完成了。可以通过在主库上插入数据,然后在从库上查询数据来验证是否生效。
image