Mysql高可用-主从复制

常见高可用方案

MySQL的各种高可用方案,大多是基于以下几种基础来部署的:

  1. 基于主从复制;
  2. 基于Galera协议;
  3. 基于NDB引擎;
  4. 基于中间件/proxy;
  5. 基于共享存储;
  6. 基于主机高可用;

在这些可选项中,最常见的就是基于主从复制的方案,其次是基于Galera的方案。其余几种方案在生产上用的并不多。

前期准备

  1. 准备机器资源
  2. 确认服务器版本
  3. 确认需要的mysql版本
  4. 下载mysql:https://dev.mysql.com/downloads/mysql/
  5. 主备机器放入tar包

安装mysql

原生安装手册地址:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

此处对手册主要步骤进行说明

  1. 解压下载的tar包
  2. 使用sudo或root用户yum install mysql-community-* 安装相关包
  3. 启动mysql:sudo service mysqld start
  4. 检查启动状态: sudo service mysqld status
  5. 修改/etc/my.cnf 所有者为数据库用户或其他非root用户
  6. 首次启动获取初始化密码: sudo grep 'temporary password' /var/log/mysqld.log
  7. 登录mysql修改初始root密码:
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

Note

validate_password is installed by default. The default password policy implemented by validate_password requires that passwords contain at least one uppercase letter, one lowercase letter, one digit, and one special character, and that the total password length is at least 8 characters.

主要内容翻译:密码必须包含大小写字母,一个数字和一个特殊字符。总长度最小为8位。

 

同样流程安装其余2台数据库。

主从复制配置

主节点配置

1、修改mysql配置文件:
vim /etc/my.cnf

[mysqld]
# 该名称可以修改,务必配置防止hostname修改导致主从复制失效。
log-bin=zy-bin
log-bin-index=master-bin.index
server-id=1

2、新增主从复制用户用于从数据库连接
mysql> CREATE USER 'copy'@'%' IDENTIFIED WITH mysql_native_password BY 'tqw961110';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'copy'@'%';
# 务必进行刷新防止更新不生效
mysql> flush privileges;

3、获取主节点信息
mysql> SHOW MASTER STATUS;
#从展示出的信息中找到File 和 Position字段【后续从节点需要配置】

从节点配置

1、修改mysql配置文件:
vi /etc/my.cnf

[mysqld]
server-id=2
relay-log=relay-log
relay-log-index=relay-log.index

2、创建主从关系
mysql> CHANGE MASTER TO 
MASTER_HOST='【主节点IP】',
MASTER_USER='【主节点创建的复制用户】',
MASTER_PASSWORD='【主节点创建的用户密码】',
MASTER_LOG_FILE='【主节点STATUS内容中的File字段】',
MASTER_LOG_POS=【主节点STATUS内容中的position字段】;

3、开启主从同步
start slave;

4、查看状态
主要看4点:
  MasterHost、MasterUser、Slave_IO:yes?、Slave_SQL:yes?

 

出现的问题汇总

  1. rpm安装时报error: can't create transaction lock on /var/lock/rpm/transaction 错误

错误原因:无权限,调整方式:使用root用户或者使用sudo

  1. navicat 无法连接mysql出现报错

Navicat for MySQL 连接新版本 Mysql时 出现Client does not support authentication protocol

错误原因:mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

低版本navicat不支持该加密规则,修改方式:修改加密规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值