centos(minimal)7.4 mysql8.0安装及主从复制/主主复制搭建

官网教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

1. 关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

2. 下载MySQL Yum Repository

  • 官网地址:https://dev.mysql.com/downloads/repo/yum/
  • 下载地址:https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

3. 安装MySQL服务

安装仓库:  yum localinstall mysql80-community-release-el7-1.noarch.rpm
sudo yum install mysql-community-server

4. 启动MySQL服务

sudo service mysqld start
sudo service mysqld status

5. 获取root密码

sudo grep 'temporary password' /var/log/mysqld.log

6. 登录修改root密码

mysql -uroot -p
# 输入上面获取的密码

# WITH mysql_native_password 使用历史密码认证插件 方便客户端登录,新的认证插件是caching_sha2_password会导致如果客户端版本过低链接不上
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root2018@';

7. 集群配置:my.conf 文件修改

vim /etc/my.cnf
# 添加服务ID,bin log配置,MySQL8 默认是开启bin log的
server-id=1    #服务器 id   
log-bin=mysql-bin   #二进制文件存放路径

# esc 退出编辑模式,shift+: 输入wq 保存退出
# 重启MySQL服务
service mysqld restart 

8. 创建master 主从同步用户

# 创建用户
CREATE USER 'zmhslave'@'%' IDENTIFIED  WITH mysql_native_password BY 'Root2018@';
# 赋予权限
GRANT REPLICATION SLAVE ON *.* TO 'zmhslave'@'%';
# 生效 flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

# 显示当前master状态 , file 和 position 从库配置使用
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |     1605 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

master 到此配置完毕

9. 从库 安装

重复1-6步安装MySQL服务并登陆修改密码

10. 从库my.conf 配置

vim /etc/my.cnf
server-id=2    #服务器 id 保证唯一性 

11. 设置master

# 注意主master关闭防火墙或者开放3306端口
CHANGE MASTER TO MASTER_HOST='10.211.55.9', MASTER_USER='zmhslave', MASTER_PASSWORD='Root2018@',MASTER_LOG_FILE='mysql-bin.000001',  MASTER_LOG_POS=1605;  

12. 启动 slave

start slave    
# 停止 stop slave
# 重置 reset slave

13. 查看slave状态

show slave status\G

# 表示启动成功
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes
# 参数详解:https://www.jianshu.com/p/3c4d7c6c6205

14. 可以去master测试了

# 比如在master创建个用户以供远程链接使用
# 创建用户
CREATE USER 'minghui'@'%' IDENTIFIED WITH mysql_native_password BY 'Root2018@';

# 设置所有权限
GRANT ALL PRIVILEGES ON *.* TO 'minghui'@'%';
# 授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'minghui'@'%';

# 从库也会自动创建用户,并设置权限

15. 搭建主主复制模式(更改从节点也为主节点)

vim /etc/my.cnf
# 添加bin log配置,MySQL8 默认是开启bin log的
log-bin=mysql-bin   #二进制文件存放路径
# 重启服务
service mysqld restart

16. 从节点创建复制用户

# 创建用户
CREATE USER 'zmhslave'@'%' IDENTIFIED  WITH mysql_native_password BY 'Root2018@';
# 赋予权限
GRANT REPLICATION SLAVE ON *.* TO 'zmhslave'@'%';
# 生效 flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

# 显示当前master状态 , file 和 position 从库配置使用
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |     2162 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

17.主节点设置master

# 注意主master关闭防火墙或者开放3306端口
CHANGE MASTER TO MASTER_HOST='10.211.55.10', MASTER_USER='zmhslave', MASTER_PASSWORD='Root2018@',MASTER_LOG_FILE='mysql-bin.000002',  MASTER_LOG_POS=2162;  

# 启动slave
start slave 

# 查看状态
show slave status\G

你可能感兴趣的:(centos(minimal)7.4 mysql8.0安装及主从复制/主主复制搭建)