MySQL 日志管理
一、日志简介MySQL数据库中支持多种日志类型,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据,本节内容将带你了解MySQL数据库中的日志管理
二、日志分类
错误日志
查询日志
慢查询日志
二进制日志
中继日志
事务日志
滚动日志
三、日志详解1.错误日志1.1 错误日志作用
记录服务器运行中产生的错误信息
记录服务器启动、停止时产生的信息
如果服务器启动了复制进程,复制进程的信息也会被记录
记录event错误日志
1.2 查看错误日志查看mysql中错误日志的位置
在mysql命令行中查看
mysql> show variables like "log_error";
在bash命令行中使用mysqladmin查看
[root@db01 ~]# mysqladmin -uroot -p123 variables | grep -w "log_error"
1.3 设置错误日志修改mysql的主配置文件/etc/my.cnf,在服务端中添加如下配置:
[root@db01 ...
MySQL 事务详解
1.事务介绍
在 MySQL 中只有使用了 InnoDB 存储引擎的数据库或表才支持事务
事务主要针对DML语句(UPDATE、INSERT、DELETE)
一组数据操作执行步骤,这些步骤被视为一个工作单元
用于对多个语句进行分组
可以在多个客户机并发访问同一个表中的数据时使用
在事务中,所有步骤都执行成功或都执行失败
如果所有步骤正常,则执行
如果步骤出现错误或不完整,则取消
2.事务ACID特性
原子性(Atomicity,或称不可分割性)
一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性(Consistency)
在事务开始之前和事务结束以后,数据库的完整性没有被破坏。例如,完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改变。
隔离性(Isolation,又称独立性)
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致 ...
MySQL 表空间管理
1.表空间概念InnoDB 存储引擎可将所有数据存放于 ibdata* 的共享表空间,也可将每张表存放于独立的 .ibd 文件的独立表空间.共享表空间以及独立表空间都是针对数据的存储方式而言的。
MySQL从5.5版本以后出现共享表空间概念,在MySQL5.6版本中默认使用的是独立表空间。
表空间的管理模式的出现是为了数据库的存储更容易扩展。
共享表空间
某一个数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在data目录下。 默认的文件名为:ibdata1 初始化为10M。
独立表空间
每一个表都将会生成以独立的文件方式来进行存储,每一个表都有一个.frm表描述文件,还有一个.ibd文件。 其中这个文件包括了单独一个表的数据内容以及索引内容,默认情况下它的存储位置也是在表的位置之中。
2.共享表空间2.1 查看共享表空间
物理文件查看
$ cd /usr/local/mysql/data$ ll ibdata*-rw-rw---- 1 mysql mysql 79691776 Jun 17 16:26 ibdata1
在数据库命令 ...
MySQL 多种结构介绍
MySQL 体系结构
连接层
验证用户身份
提供了两种连接方式(TCP/IP连接、socket连接)
建立与SQL层交互的线程
SQL 层
接收连接层传过来的SQL语句,如DDL、DML和存储过程等。并把结果返回给连接层。
验证SQL语句的语法、语义。
解析器:解析SQL语句,最终生成执行计划。
优化器:从多个执行计划中选出最优的一条。
执行器:执行选出来的最优计划。
建立一个与存储引擎层交互的线程。
执行SQL获取存储引擎层传来的数据,结构化成表格。
如果有缓存的化,会把数据写入到缓存。
记录执行日志(binlog)
存储引擎层
接收SQL层传过来的执行语句
与磁盘交互,进行数据的读取、存储,将数据返回给SQL层
MySQL 逻辑结构
库
表:元数据 + 真实数据行
元数据:列 + 其他属性
列:列名 + 数据类型 + 约束(非空、主键、默认值)
MySQL 物理结构数据物理结构mysql最底层就是数据文件,可以手动在data目录下创建目录,数据库中就能看到这个库。
MySQL的最底层的物理结构是数据文件,也就是说与存储引擎层打交道的文件,是 ...
MySQL 用户及权限管理
1.mysql用户的定义在mysql中,用户由用户名和主机域组成的。
1.1 用户名的写法
mysql> create user test1@'localhost';
注意:用户名不要以数字、符号开头,如若一定要这么写,给用户名加上引号才能创建用户。
1.2 用户中的主机域的写法
单个主机地址写法
127.0.0.1::1localhostdb01
范围型主机地址写法
172.16.1.%172.16.%.%172.%.%.%%172.16.1.5%172.16.1.0/255.255.255.0
其中%代表所有,如172.16.1.%即代表172.16.1.0~172.16.1.255这个范围内的所有地址
2.用户管理2.1 创建用户
mysql> CREATE USER test2@'localhost' IDENTIFIED BY '123';Query OK, 0 rows affected (0.00 sec)
2.2 查看数据库中得所有用户
mysql> SELECT User,H ...
PHP 无法连接 MySQL 问题
问题描述今天在一台新的服务器中安装了php7.2,mysql-5.6后。测试用php连接mysql时发现无论如何php都连接不上mysql数据库,排除了数据库账号错误,并且php已经安装了连接数据库的mysqlnd扩展。
错误排查使用php连接测试脚本,查看到底是什么错误导致php连接不上mysql的。
以下是php连接mysql的php测试脚本db-connect-test.php
<?php$dbname = 'mysql';$dbuser = 'root';$dbpass = '1234';$dbhost = 'localhost';$connect=mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);// 检查连接if (!$connect){ die("连接错误: " . mysqli_connect_error());} die("连接成功...\n");?>
...
MySQL 误删登录用户故障解决
1.模拟误删用户表的用户1.1 查看下当前用户表的用户mysql> SELECT User,Host FROM mysql.user;+------+-----------+| User | Host |+------+-----------+| root | 127.0.0.1 || root | db02 || root | localhost |+------+-----------+3 rows in set (0.00 sec)
1.2 误删所有用户mysql> DELETE FROM mysql.user WHERE 1=1;Query OK, 3 rows affected (0.00 sec)
查看误删后的用户表,所有用户都被删除了。
mysql> SELECT User,Host FROM mysql.user;Empty set (0.00 sec)
1.3 重新登录数据库虽然数据库中用户表的所有用户都被删除了,但是现在还可以继续使用root用户登录数据库(注意不能重启数据库)。一旦重启数据库就无法登录数据库了。
重启后登 ...
KVM 虚拟化管理平台 WebVirtMgr 部署实战
1. 前言 当Kvm宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为Kvm虚拟化的web管理工具,图形化的WEB,让人能更方便的查看Kvm宿主机的情况和操作。
WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个Kvm管理平台,提供对宿主机和虚机的统一管理,它有别于Kvm自带的图形管理工具(virtual machine manager),让Kvm管理变得更为可视化,对中小型Kvm应用场景带来了更多方便。
WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常Kvm的管理操作变的更加的可视化。
2. 特点
操作简单,易于使用
通过 libvirt 的API接口对Kvm进行管理
提供对虚拟机生命周期管理
3. 功能
宿主机管理支持以下功能
CPU利用率内存利用率网络资源池管理存储资源池管理虚拟机镜像虚拟机克隆快照管理日志管理虚机迁移
虚拟机管理支持以下功能
CPU利用率内存利用 ...
CentOS 7 构建私有 CA
什么是证书颁发机构(CA)?A 认证中心(CA),有时也称为 认证机构,是一家公司或组织,负责验证实体(例如网站,电子邮件地址,公司或个人)的身份,并通过发行称为“电子文件”的电子文件将其绑定到加密密钥 数字证书。 数字证书提供:
认证,作为凭证来验证颁发给该实体的实体的身份。
加密, 用于通过不安全的网络(例如Internet)进行安全通信。
诚信 文件 签 并附有证明书,以免运输中的第三方更改。
通常,数字证书的申请人会生成一个 密钥对 由一个 私钥 的网络 公钥,还有一个 证书签名请求(CSR)。 一个 CSR 是一个编码的文本文件,其中包含公钥和其他将包含在证书中的信息(例如域名,组织,电子邮件地址等)。 密钥对和 CSR 生成通常在将安装证书的服务器或工作站上完成,并且证书中包含的信息类型 CSR 根据验证级别和证书的预期用途而有所不同。 与公钥不同,申请人的私钥是安全的,永远不要向CA(或其他任何人)展示。
生成后 CSR,申请人将其发送给CA,CA会独立验证其包含的信息是否正确,如果是,则使用颁发的私钥对证书进行数字签名,然后将其发送给申请人。
当将签名的证书提交 ...
MySQL · SQL 语句
一、SQL语言的分类SQL语言分为四大类:
DDL (Data Definition Language) 数据定义语言
DML (Data Manipulation Language) 数据操纵语言
DQL (Data Query Language) 数据查询语言
DCL (Data Control Language) 数据控制语言
二、DDL数据定义语言DDL 的针对对象是:库、表。
主要有以下几个 SQL 命令:CREATE、DROP、USE、SHOW、ALTER、ADD 等。
2.1 针对库的操作2.1.1 创建库 CREATE
查看语法
mysql> HELP CREATE DATABASEName: 'CREATE DATABASE'Description:Syntax:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...create_specification: [D ...