0

0

什么是mysql集群?介绍mysql的集群

零下一度

零下一度

发布时间:2017-04-27 09:29:47

|

3728人浏览过

|

来源于php中文网

原创

以前感觉集群、读写分离,xxxx 都是狂拽牛逼吊炸天的东西。弄完之后发现其实都是很简单的,只要你感兴趣。

两台机器:

mysql01:192.168.1.222

mysql02:192.168.1.223

注意,如果你是虚拟机复制模拟的,得改下mysql/data下的auto.cnf,两台机器的uuid不能相同。服务器的的 selinux 都要 disable(修改/etc/selinux/config,将 SELINUX 改为 disabled)。

MySQL5.6 开始主从复制有两种方式:基于日志(binlog)、基于 GTID(全局事务标示符)。
主从复制(也称 A/B 复制)的原理
(1) Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件,这些记录叫做二进制日志事件(binary log events);
(2) Slave 通过 I/O 线程读取 Master 中的 binary log events 并写入到它的中继日志(relay log);
(3) Slave 重做中继日志中的事件,把中继日志中的事件信息一条一条的在本地执行一次,完
成数据在本地的存储,从而实现将改变反映到它自己的数据(数据重放)。

mysql01:

vi /etc/my.cnf
## 在 [mysqld] 中增加以下配置项
## 设置 server_id,一般设置为 IP
server_id=222
## 复制过滤:需要备份的数据库,输出 binlog
#binlog-do-db=roncoo
## 复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
## 开启二进制日志功能,可以随便取,最好有含义
log-bin=master-mysql
## 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
## 主从复制的格式(mixed,statement,row,默认格式是 statement)

binlog_format=mixed
## 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062

## relay_log 配置中继日志
relay_log=relay01
## log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
log_slave_updates=1

启动/重启 Master 数据库服务,登录数据库,创建数据同步用户,并授予相应的权限

service mysql restart
mysql -uroot -p

##创建数据同步用户,并授予相应的权限

mysql> grant replication slave, replication client on *.* to 'repl01'@'192.168.1.223' identified by
'123456';
Query OK, 0 rows affected (0.00 sec)

## 刷新授权表信息

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

## 查看 position 号,记下 position 号(从机上需要用到这个 position 号和现在的日志文件)

mysql> show master status;
mysql02:

 vi /etc/my.cnf
## 在 [mysqld] 中增加以下配置项
## 设置 server_id,一般设置为 IP
server_id=223
## 复制过滤:需要备份的数据库,输出 binlog
#binlog-do-db=roncoo
##复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
## 开启二进制日志,以备 Slave 作为其它 Slave 的 Master 时使用
log-bin=slave-mysql
## 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size = 1M
## 主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
## 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_log 配置中继日志
relay_log=relay02
## log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
log_slave_updates=1

全诚商城生成HTML多用户版
全诚商城生成HTML多用户版

1、什么是店中店?店中店是全诚商多用户版的一大特色,它既是独立的个体,又具有群集功能。我们做个例子说明:假设尊贵的您现实生活中租赁了一个店面,店面空间很大,您可以把您的店面分割成很多独立空间再向别人转租,这样您可以额外获得一部分租赁费用收入,借以减少你的个人租赁费用投入,还能起到活跃销售场所的气氛,俗话说:货卖一堆吗。你租赁的店面可以完全分割成很多空间向外转租,也可以自己保留一块空间为自己销售商品

下载

重启数据库    service mysql restart

添加相关参数

mysql> 
change master to master_host='192.168.1.222', master_user='repl01',master_password='123456', master_port=3306, master_log_file='mysql01.000001',master_log_pos=429, master_connect_retry=30;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

上面执行的命令的解释:
master_host='192.168.1.222' ## Master 的 IP 地址
master_user='repl' ## 用于同步数据的用户(在 Master 中授权的用户)
master_password='123456' ## 同步数据用户的密码
master_port=3306 ## Master 数据库服务的端口
master_log_file='master-mysql.000001' ##指定 Slave 从哪个日志文件开始读复制数据(可
在 Master 上使用 show master status 查看到日志文件名)
master_log_pos=429 ## 从哪个 POSITION 号开始读
master_connect_retry=30 ##当重新建立主从连接时,如果连接建立失败,间隔多久后重试。
单位为秒,默认设置为 60 秒,同步延迟调优参数。
## 查看主从同步状态
mysql> show slave status\G;
可看到 Slave_IO_State 为空, Slave_IO_Running 和 Slave_SQL_Running 是 No,表明 Slave 还
没有开始复制过程。
## 开启主从同步
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
## 再查看主从同步状态
mysql> show slave status\G;

主要看以下两个参数,这两个参数如果是 Yes 就表示主从同步正常

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

可查看 master 和 slave 上线程的状态。在 master 上,可以看到 slave 的 I/O 线程创建的连接:

mysql01: mysql> show processlist\G;
mysql02: mysql> show processlist\G;

完成,测试在mysql01上新建数据库db1,查看mysql02。

从mysql02到mysql01是一样的步骤:

切换到mysql02上

##创建数据同步用户,并授予相应的权限

mysql> grant replication slave, replication client on *.* to 'repl02'@'192.168.1.222' identified by
'123456';
Query OK, 0 rows affected (0.00 sec)

## 刷新授权表信息

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

## 查看 position 号,记下 position 号(从机上需要用到这个 position 号和现在的日志文件)

mysql> show master status;
change master to master_host='192.168.1.223', master_user='repl02',master_password='123456', master_port=3306,master_log_file='mysql02.000002',master_log_pos=567,
master_connect_retry=30;
mysql> start slave;Query OK, 0 rows affected (0.00 sec)

## 再查看主从同步状态

mysql> show slave status\G;

在mysql02上创建数据库db2,查看mysql01即可

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 810人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号