分布式电商项目(五)--Linux配置数据库

Linux安装MariaDB数据库

下载MariaDB数据库

测试: 当前虚拟机是否可以正确的链接外网.
分布式电商项目(五)--Linux配置数据库_第1张图片

[root@localhost src]# yum  install mariadb-server      安装mariadb数据库
[root@localhost src]# yum  clean   all                 清空已安装文件   如果下载失败之后执行的.

确认下载

分布式电商项目(五)--Linux配置数据库_第2张图片

安装完成提示

分布式电商项目(五)--Linux配置数据库_第3张图片

数据库启动

    1.   启动命令    [root@localhost src]# systemctl  start  mariadb
    2.   重启命令    [root@localhost src]# systemctl  restart  mariadb
    3.   关闭命令    [root@localhost src]# systemctl  stop  mariadb

数据库初始化操作

命令: `mysql_secure_installation’
分布式电商项目(五)--Linux配置数据库_第4张图片

测试数据库用户名和密码是否有效

分布式电商项目(五)--Linux配置数据库_第5张图片

导入数据表

说明:如果mysql数据库需要导入数据表命令如下:
命令: source /xxx/xxxx/xxxx/jtdb.sql;
分布式电商项目(五)--Linux配置数据库_第6张图片

Mysql数据库远程访问配置

分布式电商项目(五)--Linux配置数据库_第7张图片

关于链接数据库的说明

说明:

  1. 如果需要远程链接数据库必须通过防火墙
  2. 如果远程链接数据库,数据库中必须开启远程访问权限才行,否则拒绝链接.

配置数据库权限配置说明

分布式电商项目(五)--Linux配置数据库_第8张图片

配置Linux数据库权限

切换数据库mysql

分布式电商项目(五)--Linux配置数据库_第9张图片

修改数据库表

1).检查数据表
分布式电商项目(五)--Linux配置数据库_第10张图片

配置Linux防火墙策略

检查防火墙状态

命令: firewall-cmd --state
分布式电商项目(五)--Linux配置数据库_第11张图片

防火墙配置

说明:防火墙中有一个配置文件,表示当Linux系统启动时防火墙应该如何操作!!!
需求: 告诉linux系统以后开机不需要启动防火墙
命令: systemctl disable firewalld.service
systemctl enable firewalld.service
分布式电商项目(五)--Linux配置数据库_第12张图片

手动关闭防火墙

说明:通过命令手动将防火墙关闭
命令:

  1. systemctl stop firewalld.service
  2. systemctl start firewalld.service

分布式电商项目(五)--Linux配置数据库_第13张图片

手动开放防火墙端口

1). 检查防火墙开放的端口

firewall-cmd --list-ports

2).检查端口是否开放

firewall-cmd --query-port 80/tcp

在这里插入图片描述
3). 开启防火墙

firewall-cmd --zone=public --add-port=80/tcp --permanent

在这里插入图片描述
4).移除端口

 firewall-cmd --zone=public --remove-port=9090/tcp --permanent

在这里插入图片描述
5).关于防火墙操作的解释
–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–remove-port=80/tcp #移除端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

6).重启防火墙

firewall-cmd --reload

数据库远程测试

分布式电商项目(五)--Linux配置数据库_第14张图片

导入jtdb.sql

分布式电商项目(五)--Linux配置数据库_第15张图片

数据库相关学习

数据库备份策略

数据库冷备份

说明:通过数据库工具,定期将数据库文件进行转储,保证数据的安全性. (一般2-3天)
缺点:
1.备份时由于突发的情况,可能导致备份失败.需要反复备份.
2.由于冷备份是定期备份.所以可能导致数据的丢失.

核心:
数据必须备份.备份的数据是恢复的最后有效的手段.
在这里插入图片描述

数据库热备份

说明:可以通过数据库机制,自动的实现数据的备份操作.
优点: 可以实现自动化的操作,并且是实时备份.
在这里插入图片描述
备份实现原理:
1.当数据库主机的数据发现变化时,会将修改的数据写入二进制日志文件中.
2.从库通过IO线程,读取主库的二进制日志文件,获取之后,将数据保存到中继(临时存储)日志中.
3.从库中开启Sql线程,之后读取中继日志中的数据,之后将数据同步到从库中.

准备多台服务器

修改虚拟机名称

说明:复制虚拟机,并且改名为JT_LINUX_S.之后启动即可.
在这里插入图片描述

修改Linux从机的mac地址

为了保证2台虚拟机正常稳定的运行,需要修改mac地址.
在这里插入图片描述

安装数据库从库

具体参见 博客文档.
https://blog.csdn.net/qq_1680...

数据库主从搭建

开启主库二进制文件

说明:主库的二进制日志文件,默认条件下是关闭的,需要手动的开启.
命令: vim /etc/my.cnf
编辑二进制日志文件:
在这里插入图片描述

开启从库二进制配置文件

修改文件: vim /etc/my.cnf
添加的操作和主库一致,之后重启数据库服务器,效果如下:
在这里插入图片描述

数据库主从搭建

1).检查主库的状态
在这里插入图片描述
2). 实现数据库主从挂载

/*我是130 我是从库*/
/*1.实现数据库主从挂载 host/port/user/password/二进制日志/pos*/
CHANGE MASTER TO MASTER_HOST="192.168.126.129",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;

/*2.启动数据库主从服务*/
START SLAVE;

/*3.检查数据库启动状态*/
SHOW SLAVE STATUS;

/*4.如果出现数据库问题  1.关闭主从服务, 2.检查报错状态  3.重新搭建服务*/
STOP SLAVE    
/*检查报错信息 根据报错修改记录*/
/*重新搭建主从关系*/

3).主从状态的校验

数据库主从测试

注意事项:
1.修改主库的数据,从库会跟着同步数据.
2.如果修改从库数据,则主从的关系将会终止.

数据库读写分离/负载均衡实现

数据库优化策略

说明:通过代理数据库可以实现数据库的读写分离/数据库负载均衡操作,进一步的提升了整体架构的能力.
在这里插入图片描述

Mycat

在这里插入图片描述

Mycat特性

支持SQL92标准
支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法
遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。
支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
基于Nio实现,有效管理线程,解决高并发问题。
支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。
支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
支持多租户方案。
支持分布式事务(弱xa)。
支持XA分布式事务(1.6.5)。
支持全局序列号,解决分布式下的主键生成问题。
分片规则丰富,插件化开发,易于扩展。
强大的web,命令行监控。
支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
支持密码加密
支持服务降级
支持IP白名单
支持SQL黑名单、sql注入攻击拦截
支持prepare预编译指令(1.6)
支持非堆内存(Direct Memory)聚合计算(1.6)
支持PostgreSQL的native协议(1.6)
支持mysql和oracle存储过程,out参数、多结果集返回(1.6)
支持zookeeper协调主从切换、zk序列、配置zk化(1.6)
支持库内分表(1.6)
集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

部署步骤

上传myCat服务器

上传路径: /usr/local/src
在这里插入图片描述

解压Mycat

 tar -xvf  Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz

移动安装文件:
在这里插入图片描述

server.xml配置文件说明

注意事项: 默认条件下的端口号8066端口


        root
        
        jtdb
    
    
    
        user
        jtdb
        true
    

schema.xml配置




    
    
    

    
    
        
          
        
            
        
        
        
        
        
        
    
        select 1

        
        
            
            
            
            
            
        

            
            
            
            
            
        
        
        
    

实现配置文件上传

在这里插入图片描述

Mycat命令

Usage: ./mycat { console | start | stop | restart | status | dump }
在这里插入图片描述

检查mycat日志

在这里插入图片描述

Mycat负载均衡测试

修改从库中的数据库.刷新列表页面.检查是否有负载均衡的效果.
注意事项: 如果测试完成,记得将数据修改 保证一致.

实现数据库高可用

搭建策略

问题说明

说明:如果根据如下的配置实现数据库的代理,如果数据库主库宕机,则直接影响整个程序的执行.所以需要实现高可用机制.
高可用实现的问题:
如果实现了数据库高可用,可以自动的切换数据库,由于用户直接操作了从库,当主库启动时发现数据不一致时,主从同步的状态将会终止.
分布式电商项目(五)--Linux配置数据库_第16张图片

双机热备(双主模式)

说明:可以通过数据库双主模式实现数据库高可用.
双主模式实质都是主机,互相备份.
分布式电商项目(五)--Linux配置数据库_第17张图片

双机热备的原理:只对自己执行的操作写入日志中,心跳监听获取的i/o线程会写入到re-log中转换成sql执行,所以当主机插入一条数据后,从机监听到pos值偏移,将偏移的bin-log二进制读取,通过io流写入到re-log中,转换成sql执行插入操作,但这一条操作不会写入到从机的bin-log中。(bin-log中只会写入手动执行的增删改)
分布式电商项目(五)--Linux配置数据库_第18张图片
双机热备中,假设主节点(其中一个角色)的二进制日志文件是mysql-bin.01,position是1000,在它宕机重启后,会变成mysql-bin.02,position变为120,其实这一变动就相当于主节点作了写操作。在主节点宕机之前,从节点监听的是mysql-bin.01,position是1000,在主节点恢复启动后,从节点监听到主节点作了写操作且position变为120,从而启动sql线程调用从节点内部客户端更新写操作,从而与主节点保持一致。

双机热备的实现

之前的配置:
主机: 192.168.126.129
从库: 192.168.126.130
现在的配置:
主机: 192.168.126.130
从库: 192.168.126.129

1).检查主库状态
分布式电商项目(五)--Linux配置数据库_第19张图片

数据库高可用实现

在windows中修改好,将虚拟机中的schema.xml删除掉,传进来,直接修改可能会报错,修改内容:添加标签

 
            
            
        

编辑配置文件-->上传配置文件-->重启mycat服务器

1).编辑配置文件




    
    
    

    
    
        
          
        
            
        
        
        
        
        
        
    
        select 1

        
        
            
            
            
            
            
        

            
            
            
            
            
        
        
            
            
            
            
        
        
    

2).上传配置文件:
分布式电商项目(五)--Linux配置数据库_第20张图片

数据库高可用实测试

1.启动服务器,测试mysql数据库是否正常.
分布式电商项目(五)--Linux配置数据库_第21张图片

3).修改数据库中的内容,重启主数据库,检查数据是否同步
分布式电商项目(五)--Linux配置数据库_第22张图片

检查端口占用情况

分布式电商项目(五)--Linux配置数据库_第23张图片

你可能感兴趣的:(mariadb)