MySQL 主从复制原理及配置教程
MySQL主从复制也可以称为MySQL主从同步,它是构建数据库高可用集群架构的基础。MySQL 的主从复制是一个异步操作的过程,数据在 master 与 slave 之间实现整个主从复制是三个线程参与完成的。其中两个线程在 slave 端(SQL线程和I/O线程),另一个线程在 master 端(I/O线程)。
MySQL 主从复制原理
主从同步过程中主服务器有一个工作线程I/O dump thread,从服务器有两个工作线程I/O thread和SQL thread。
主库把外界接收的SQL请求记录到自己的binlog日志中,从库的I/O thread去请求主库的binlog日志,并将binlog日志写到中继日志中,然后从库重做中继日志的SQL语句。主库通过I/O dump thread给从库I/O thread传送binlog日志。
配置 MySQL 主从复制
主和从的身份可以自己指定,我们将使用虚拟机 CenterOS 中的两台机器分别作为 MySQL 主服务器和 MySQL从服务器。 在主从设置前,要保证服务器间的网络连通,具体操作可参考 MySQL 修改 root 帐号密码及授权局域网环境访问 这篇文章。
本文以 192.168.0.103(主) 和 192.168.0.106(从) 这两台机器为例,来介绍 MySQL 主从复制的配置方法。
MySQL实例部署情况:
db1-M1,IP:192.168.0.103,Port:3306 (主)
db1-S1,IP:192.168.0.106, Port:3306 (从)
配置主服务器 master
编辑主服务器的配置文件 my.cnf,添加如下内容
[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1
创建日志目录并赋予权限
mkdir /var/log/mysql
chown mysql.mysql /var/log/mysql
重启mysql服务
systemctl restart mysqld
应该创建一个专门用于复制数据的用户
# CREATE USER 'slave'@'%'
grant all privileges on *.* to slave@'192.168.0.106' identified by'slave'
flush privileges;
获取主服务器的二进制日志信息
SHOW MASTER STATUS;
File为使用的日志文件名字,Position为使用的文件位置,记下这两个参数,待会会用到。
配置从服务器 slave
编辑从服务器的配置文件 my.cnf,添加如下内容
[mysqld]
server-id=2
重启mysql服务
systemctl restart mysqld
连接mysql
mysql -h 192.168.0.106 -uroot -p
输入密码,并回车
use mysql;
设置连接到主服务器
change master to master_host='192.168.0.103', master_user='slave', master_password='slave',master_log_file='mysql-bin.000018', master_log_pos=1387;
注:
master_host:主服务器Ubuntu的ip地址
master_log_file: 前面查询到的主服务器日志文件名
master_log_pos: 前面查询到的主服务器日志文件位置
开启同步,查看同步状态
mysql>start slave;
本文地址:https://blog.csdn.net/weixin_44776993/article/details/107449762
推荐阅读
-
mysql 8.0.18 安装配置方法图文教程(linux)
-
SVN入门及配置使用_PHP教程
-
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置_PHP教程
-
mysql (master/slave)复制原理及配置
-
mysql (master/slave)复制原理及配置
-
CentOS-6.5下MariaDB-10基于XtraBackup备份工具的原理及配置详解
-
mysql-在配置mySQL主从复制 出现问题
-
MySQL8.0 DDL原子性特性及实现原理
-
PHP上传原理及操作实现_PHP教程
-
安装配置MySQLMTOP来监控MySQL运行性能的教程_MySQL