MySQL实现主从复制及主主复制
时间:2021-07-11
本文章向大家介绍MySQL实现主从复制及主主复制,主要包括MySQL实现主从复制及主主复制使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
mysql实现主从复制
实验环境
node | Master | Slave |
---|---|---|
linux | CentOS7.9 | CentOS7.9 |
mysql | 5.7 | 5.7 |
IP | 192.168.18.131 | 192.168.18.133 |
主机点配置:
[mysqld]
server-id=1 #为当前节点设置一个全局惟的ID号
log-bin #启用二进制日志
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
从节点配置:
[mysqld]
server-id=2 #为当前节点设置一个全局惟的ID号(不能和主节点一样)
log-bin #启用二进制日志
read_only=ON #限制从数据库为只读,针对supper user无效
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
查看主节点当前的二进制文件名及位置:
在主机点上创建有复制权限的用户账号 :
在从节点上使用有复制权限的用户账号连接至主服务器,并启动复制线程
查看从节点IO线程及SQL线程
上面的两个进程都显示YES则表示配置成功
验证
主节点创建数据库和表
从节点查看已同步
主主复制
两个mysql服务器互为主从
在刚刚的主从复制环境下稍加修改即可。
131主机配置文件修改如下:
[mysqld]
server_id=1
log-bin
auto_increment_offset=1 #设置自动增长的字段的偏移量,即初始值为1
auto_increment_increment=2 #增长幅度
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
133主机配置文件修改如下:
[mysqld]
server_id=2
log-bin
auto_increment_offset=2 #设置自动增长的字段的偏移量,即初始值为2
auto_increment_increment=2 #增长幅度
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
注:其中只有server_id不同和 auto-increment- offset不同
auto-increment-increment的值应设为整个结构中服务器的总数,此次实验环境只用到两
台服务器,所以值设为2。
重启mysql使配置生效;
查看133主机当前的二进制文件名及位置,用于131主机连接时使用:
两个服务器上分别执行创建一个用于主从复制的账号,给与REPLICATION SLAVE权限。
131主机上文已经创建过,且133主机也已经同步,故这里不再创建;
配置连接master的相关信息
在slave中指定master相关参数,并开启slave线程;
在主从复制中133主机已经配置过相关参数,现在只需在131主机上配置即可。
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.18.133',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='centos7-bin.000004', #指定133主机的二进制文件
-> MASTER_LOG_POS=154; #指定(在master二进制文件中)要开始复制的位置
mysql> start slave;
查看从节点IO线程及SQL线程状态为:YES,说明同步开启成功。
最后进行测试验证:
#在131主机执行
mysql> create table test1(id int auto_increment primary key,name char(8));
mysql> insert test1 (name) values('vn');
#在133主机执行
mysql> insert test1 (name) values('ez');
#验证
mysql> select * from test1;
+----+------+
| id | name |
+----+------+
| 1 | vn |
| 2 | ez |
+----+------+
至此,主主同步环境也已经实现!
原文地址:https://www.cnblogs.com/quhz/p/14995282.html
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- laravel 框架配置404等异常页面
- Django –Xadmin 判断登录者身份实例
- Laravel 队列使用的实现
- keras 两种训练模型方式详解fit和fit_generator(节省内存)
- Keras 中Leaky ReLU等高级激活函数的用法
- Python错误的处理方法
- python3的pip路径在哪
- MySQL 案例:init_connect 引发的 Lost connection
- PHP一个简单的无需刷新爬虫
- PHP实现函数内修改外部变量值的方法示例
- PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
- PHP命名空间简单用法示例
- PHP array_shift()用法实例分析
- PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
- 基于Python+QT的gui程序开发实现