Mysql集群配置主从关系

8 篇文章 0 订阅

                               Mysql集群配置主从关系


目录

                               Mysql集群配置主从关系

一.Mysql集群安装

1.安装cmake(云主机,虚拟机环境无需安装)

1.#yum -y install cmake

2.安装包解压(/home/resources中)

1.创建一个空文件  PS:需要两个云主机

2.将资源移动到该文件夹中

3.解压该资源

3.安装数据库相关包

1.安装 要按顺序来,最好安装我的图来做,防止产生没必要的错误 -ivh 显示安装进度

2.安装第一个安装包 rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm 

3.安装第二个安装包 rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm

4.安装第三个安装包 rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm         

5.安装第四个安装包 rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm            

4.检查相关两个文件夹

1./etc/my.cnf

2./var/lib/mysql

5.Mysql运行启动

1.数据库启动成功,

2.无需输入数据库密码直接通过指令进入

6.远程连接云主机Mysql

1.设置对应的账号,密码,远程连接需要账号和密码

2.连接成功

7.登录远程数据库

1.把所有账号root中的密码全部改成加密的字符串(root加密)​

2.两台全部设置

8.主从搭建

1.选择一个云主机作为主节点   10.42.60.249 为主节点

2.编辑打开这个文件

3.重启服务

4.登录Mysql

5.\G:linux客户端执行的命令附加值,可以将执行的命令结果以纵向展示

6.获取观察结果

9.配置从节点

1.配置从节点my.cnf添加server-id

2.重启从节点

10.从节点挂接主从关系

1.登录从节点的mysql客户端执行命令

2.运行查询从节点状态

3.开启从节点(开启IO线程,SQL线程)

11.测试主从的关系

1测试主从数据同步

1.SHOW MASTER STATUS;查看结构

2.重新启动从节点即可实现主从数据同步

3.数据同步测试,

12.停止主从关系

1.停止主从关系

2.初始化所有数据

3.重新执行挂接

4.重启

​13.暂告一段落


一.Mysql集群安装

1.安装cmake(云主机,虚拟机环境无需安装)

环境插件  空环境必须做这一项

yum 安装cmake gcc tcl*

1.#yum -y install cmake

2.安装包解压(/home/resources)

1.创建一个空文件  PS:需要两个云主机

2.将资源移动到该文件夹中

3.解压该资源

3.安装数据库相关包

1.安装 要按顺序来,最好安装我的图来做,防止产生没必要的错误 -ivh 显示安装进度

2.安装第一个安装包 rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm 

调试

3.安装第二个安装包 rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm

  分片       

4.安装第三个安装包 rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm         

   客户端

5.安装第四个安装包 rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm            

PS:安装会出问题 参考文献

https://www.cnblogs.com/chuijingjing/p/10005922.html

servlet

两台云主机Mysql安装成功,PS:不只是我这一种安装方法

4.检查相关两个文件夹

1./etc/my.cnf

这个文件出现,才能说明安装成功

如果不存在,从有的服务器远程拷贝

远程拷贝:[root@IP]#  scp xxx.txt root@10.42.60.249:/home/

2./var/lib/mysql

5.Mysql运行启动

1.数据库启动成功

2.无需输入数据库密码直接通过指令进入

查看数据库信息,好久没敲,指令都快忘记了

6.远程连接云主机Mysql

1.设置对应的账号,密码,远程连接需要账号和密码

设置运行远程登录 在自动生成的Mysql数据库中有User表,用来设置运行远程登录,需要在云主机中设置

  • 默认安装的mysql没有外部访问权限,所以需要开启访问权限
  • grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码'];
  • "%" 表示所有10.0.0.1这样格式的ip地址 10-0-0-1
  • mysql>grant all on *.* to 'root'@'%' identified by 'root';

给所有输入root,root的用户运行远程连接

2.连接成功

7.登录远程数据库

1.把所有账号root中的密码全部改成加密的字符串(root加密)

2.两台全部设置

此时,Mysql数据库基本搭建成功

8.主从搭建

上篇博客介绍了,主节点需要开启一个二进制日志文件,但是Mysql默认不开启

  • 主节点:开启一个二进制日志文件(mysql默认不开二进制)

1.选择一个云主机作为主节点   10.42.60.249 为主节点

2.编辑打开这个文件

/etc/my.cnf中添加内容

  • server-id=1
  • log-bin=mysql-bin

3.重启服务

4.登录Mysql

5.\G:linux客户端执行的命令附加值,可以将执行的命令结果以纵向展示

区别

6.获取观察结果

  • file文件名:从节点需要配置监听的二进制文件
  • 000001是后缀自增的数字,会在重启之后自增1
  • position指针值:初始化120,
  • 随着新增数据,创建表格等写操作的进行,将会变大;从节点判断主节点更新数据的依据

保证主从挂接需要锁库

  • flush tables with read lock;将当前库中所有表格锁定,只允许读;
  • 防止高并发,多人使用时,指针值变化,捕捉不到,防止发生错误
  • 保证在运行数据库的环境中,不会因为写操作对观察数据的影响
  • unlock tables;放开锁定,在挂接主从完成后放开;

9.配置从节点

1.配置从节点my.cnf添加server-id

2.重启从节点

10.从节点挂接主从关系

  • 需要的参数:二进制文件名称,position值,ip,port,username,password
  • 登录从节点的mysql客户端执行命令

1.登录从节点的mysql客户端执行命令

master_log_file='mysql-bin.000002',  是什么写什么,我的是01 

只要不报错,运行成功

注意!!!!!!!!!!!!!!222一定要写对应的,写错了完全不通过!!!

血的教训

2.运行查询从节点状态

IO线程 NO SQL线程 NO  还没开启,主从还没开启

3.开启从节点(开启IO线程,SQL线程

 

start slave;开启    stop slave; 停止

查看状态

在开启主从关系之前的数据,从节点无法关联

11.测试主从的关系

1测试主从数据同步

1.SHOW MASTER STATUS;查看结构

在主节点中写入一些数据,更新从节点数据库,发下同步更新了

由于前面粗心,写错数字发下,主从关系,没法连接,关闭从节点,重新配置

2.重新启动从节点即可实现主从数据同步

3.数据同步测试,

PS:

  • 我在从节点无法写创建表,主节点可以,
  • 可能是我指令写错了,还是从节点无法创建表,可以试一试,
  • 写数据没问题,但是主节点无法获取到值(下面我测试一下)

1.主节点数据

2.从节点数据

3.主节点添加数据

4.此时从节点,会更新数据吗?

  • 依然保持原样,并且这是因为sql语句执行同步过来的insert命令已经出错了
  • 因为SQL线程出现错误
  • 主节点写操作,不会继续同步

原因:

  • 在从节点添加了一个id=3,name=“杀死”的数据
  • ,当主节点添加数据insert into student (id,name) values(3,ly'),
  • io依然是监听获取更新sql语句的逻辑,
  • 但是sql线程在执行insert通过语句时报错:Duplicat entry 'id',
  • 主键重复错误
  • Error 'Duplicate entry '3' for key 'PRIMARY'' on query. Default database: 'mysql1'. Query: 'INSERT INTO `user` (`id`, `name`, `age`) VALUES ('3', 'ly', '10')'

结论:主从关系一旦搭建,mysql虽然不限制从节点写数据,但是不能在从节点写,从节点只能读取操作

12.停止主从关系

1.停止主从关系

stop slave将io线程和sql线程停止; 出现错误都可以停止 PS:只限制在测试环境,因为会删除数据

2.初始化所有数据

将错误数据,导致主从出现问题的数据删除  保证两边数据一致

3.重新执行挂接

SHOW MASTER STATUS;

4.重启



13.暂告一段落

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值