MySql详解_入门到精通03运维黑马mysql运维
一、日志
1.1、错误日志

通过模糊匹配:查看数据库相关日志位置
show variables like '%log_error%';

退出mysql命令行并进入root权限下:
tail -50 /var/log/mysqld.log

1、测试
标签1中监控日志文件后几行数据
tail -f /var/log/mysqld.log

在标签2中制造一个错误:修改mysql服务文件中唯一的UUID,再重启mysql服务器,造成服务器启动失败,查看日志
vim /var/lib/mysql/auto.cnf


重启服务器:
systemctl restart mysqld

查看日志:

1.2、二进制日志

1、索引文件与日志文件:



再/etc/my.cnf文件中通过参数改变日志格式后也会新建一个binlog文件
2、日志格式



3、查看基于行Row的二进制日志文件
修改数据表数据后查看日志信息:



4、修改为基于Sql语句的二进制日志文件
vim /etc/my.cnf
重启服务



但是只会记录DML和DCL语句,不会记录查询语句SQL
5、删除二进制文件


1.3、查询日志



跟踪日志文件后几行内容:
tail -f /var/log/mysql_query.log
1.4、慢查询日志

监测master-slow.log文件尾部内容变化
tail -f master-slow.log

二、主从复制
2.1、概述


数据备份要加全局锁避免数据不一致,当前数据库处于只读状态,主库正常增删改,从库仍可以查询。
2.2、原理


2.3、配置主从数据库

1、主库配置
主库设置为可读可写:read-only=0





2、从库配置
从库设置为只读:read-only=1






三、分库分表
3.1、概述
1、单数据库存储所带来的问题

2、解决方法

3.2、拆分方法

1、垂直拆分

2、水平拆分

3、如何保证可以访问多个数据库
以前应用程序只需要访问一个数据库,现在分库后形成了多个数据库,如何保证可以访问多个数据库?

3.3、Mycat中间件



需要再主数据服务器中按照JDK和Mycat。

解压JDK

配置环境变量


解压Myca文件夹



然后再mycat的lib文件夹中上传一个高版本的包。
3.4、Mycat核心结构

3.5、Mycat入门


1、配置Mycat
配置Mycat配置文件:设置分表的策略


在NotePad++中配置,不容易出错



找到配置文件



找到server.xml文件
2、启动Mycat测试
切换到bin目录

查看日志是否启动完成

连接mycat服务器账号密码是server.xml文件中配置账号密码。

查看有多少数据库数据表:存在的是逻辑库与逻辑表,真实并不存在


3、创建数据表


4、插入数据


查询数据表发现,这三条数据全插在了第一个分片节点内,第二第三个节点数据表为空
由于上面文件就设置的分片规则,导致数据的插入方式。auto-sharding-long 是根据id进行插入的:




3.6、Mycat配置文件
1、Schema.xml:配置逻辑库/表,分片规则/节点





总结:


2、rule.xml


3、Server.xml




3.7、Mycat垂直分片(库)



1、 配置文件设置:



设置完后要重启



2、建物理表/插入数据


创建物理表:

3、在mycat中进行多表联查

1、查地址,在同一个分片中

Mycat中用同样的查询语句即可

2、订单查询,查询字段不在同一个节点中

报错:

解决:


设置完成后重启mycat,把物理数据库中对应的哪些表全删除,重新执行脚本文件创建表并插入数据。

3.8、水平分表

1、服务器准备准备:四台服务器,三台数据库服务器创建三个itcast数据库


2、mycat配置文件中声明逻辑库逻辑表




3、底层数据库创建tb_log表结构
3.9、分片规则
1、范围分片


2、求模分片


3、一致性Hash


4、枚举分片


默认节点是只当要插入的节点超出了枚举节点会像默认节点中插入:例如只设置了1,2,3分别插入对应的检索值0,1,2节点,如果插入的是4,枚举中没有4,默认查到第二个节点,即检索值是1的节点。
5、其他分片
3.10、mycat管理与监控
1、运行原理于内部执行流程

2、管理工具


3、Mycat监控工具


安装Zookeeper

安装Mycat-Web



四、读写分离
4.1、介绍


4.2、一主一从----读写分离



修改balance属性


4.3、双主双从主从复制配置
**双主双从可以解决一主一从中主库宕机后无法插入数据的问题。**实现高可用


1、主库配置


2、第二个主库配置




3、从库配置
第1台从库

第2台从库
4、关联主库从库



5、关联两个主库

主库1(211)关联主库2(213)
主库2(213)关联主库1(211)

结果:在主库master1中建立数据库后db01,主库master2和两个从库也会出现此数据库db02
4.4、双主双从读写分离基于Mycat配置




4.5、总结


浙公网安备 33010602011771号