mysql—-高并发、高可用

mysql主从复制

通常,一个应用程序连接一个数据库,但是当读写并发量高的时候,单个mysql服务器的压力就会很大,还可能出现单点故障。

为了提高mysql服务的高并发、高可用性,可以采用主从复制架构,实现读写分离。
在这里插入图片描述
原理:

  1. 当master主节点进行写入操作时(insert/delete/update),写入数据库的同时,还会将操作记入binlog;
  2. master主机有多少个slave从节点,就会创建多少个binlog的dump线程,当dump线程监听到binlog发生改变,就会通知对应的从节点,并将binlog内容发送给从节点;
  3. slave从节点的I/O线程接收到binlog内容,会存储到本地的relay-log(中继日志);
  4. 从节点的SQL线程就会读取本地的中继日志,按照对应的操作写入本地的数据库。

实现mysql主从复制

主节点:192.168.0.105
OS: ubuntu1804
MySQL: 5.7.39

从节点:192.168.0.108
OS:CentOS7
MySQL: 5.7.39

  1. 连接主节点,授权可以复制到从节点
mysql -u lauf -p 

mysql>create user  tom@"%" identified by 'tom123';
# 授权复制到从节点
mysql>grant replication slave on *.* to 'tom'@'slave1_ip' identified by 'tom123';
mysql>flush privileges;

  1. 配置主节点
cd /etc/mysql/mysql.conf.d 

sudo vim mysqld.cnf

# 开启binlog
log_bin=/var/log/mysql/mysql-bin.log
# 服务器唯一编号
server-id=104
# 同步的数据库
binlog_do_db=xxx
binlog_ignore_db=xxx
# 删除过期日志
expire_logs_days=10
# 日志的最大内存
max_binlog_size=100M
# 主节点可读可写
read_only=0
  1. 查看主节点的状态
# 连接 mysql
mysql>show master status

在这里插入图片描述

  1. 配置从节点
    简单增加一个server-id=唯一值
# centos 配置mysql
cd /etc/
sudo vim my.cnf

# 增加一个server-id=108
# 重启mysql
sudo service mysqld restart

# 连接mysql 增加一个用户
# 从节点不是必须要创建用户
mysql>create user lauf@'%' identified by  'lauf123';

在这里插入图片描述
密码太简单

# 这里以tom 为例
mysql>create user tom@"%" identified by 'Tom123qecba.'
  1. 设置从节点的主节点
# 连接mysql
mysql>change master to master_host='192.168.0.105',master_port=3306,master_user='tom',master_password='tom123',master_log_file='mysql-bin.000002',master_log_pos=154;

# 启动从节点
mysql>start slave;
mysql>show slave statusG;

在这里插入图片描述

  1. 测试,在主节点创建一个数据库,查看从节点。
# 主节点
mysql>create database test_replica default charset utf8;

mysql>use test_replica;
mysql>create table stu(id int primary key auto_increment, name varchar(30), age int)engine=innodb;

mysql>insert into stu values(1, 'jack', 23);

然后查询从节点中的stu表数据。
只有主节点有写入操作时,即binlog发生改变,dump线程才通知从节点,并将binlog推送给从节点,从节点再同步数据。

问题点

  1. mysql版本必须一致,避免版本问题
  2. 主从同步数据延时问题

远程连接

  1. 连接主节点
# 可以连接
mysql -u tom -p -h 192.168.0.105
  1. 远程连接centos的mysql 从节点
    还未配置好!!!!
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>