安装
老规矩先上安装脚本,基于官网的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;
记录下返回的 File 和 Position 值,用于后面在从库上配置。
配置从库
在从库上修改 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;
至此,主从复制就已经配置完成了。可以通过在主库上插入数据,然后在从库上查询数据来验证是否生效。