RDBMS 术语

  1. 数据库: 数据库是一些关联表的集合
  2. 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  3. 表头(header): 每一列的名称;
  4. 列row: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。每一行用来描述某物的具体信息;
  5. 行col:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  6. 值value: 行的具体信息, 每个值必须与该列的数据类型相同;
  7. 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  8. 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  9. 键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性。
  10. 外键:外键用于关联两个表。
  11. 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  12. 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  13. 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

整删改查操作

库操作

create databae dbname;
mysqladmin -u root -p create DBNAME use dbname;
select database(); #查询当前正在使用的数据库名称
drop database dbname;

表操作

# 创建表
# CREATE TABLE table_name (column_name column_type);
create table mytable(name varchar(20),sex(char(1),birth date);
CREATE TABLE IF NOT EXISTS `test_tb`(
`tb_id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `tb_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8; show tables;
DROP TABLE table_name; # 插入数据
INSERT INTO test_tb
(title,author, submission_date)
VALUES
("MySQL", "LESSON", NOW()); # 查询数据
select * from test_tb;
SELECT * from test_tb WHERE title='MySQL'; # 更新数据
UPDATE test_tb SET title='python' WHERE id=1; # 删除数据
DELETE FROM test_tb WHERE runoob_id=1; # 查看表结构
SHOW COLUMNS FROM test_tb;
SHOW CREATE TABLE test_tb;

账号与授权

create user 'admin@'%' identified by '123456';  #创建远程管理员账户
set password for admin=password('123456');
rename user admin to guest;
drop user guest; show grants for guest;
grant all on mysql.* to guest;
grant all privileges on *.* to 'admin'@'%';
update user set password=password('123456') where user='root' and host='localhost'; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbname.* TO 'admin'@'%' IDENTIFIED BY '123456';
revoke select on mysql.* from admin; #撤销权限
revoke all on mysql.* from jifei; alter user root@'localhost' identified by 'root';
alter user root@'localhost' identified by 'root';
FLUSH PRIVILEGES; #用于数据库用户信息更新后,重启mysql服务器也可以
SELECT host, user, password FROM mysql.user WHERE user = 'admin'; #修改不同客户端连接的限制  Client does not support authentication protocol requested by server;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

匹配符(条件查询)

> 、< 、<= 、>= 、= 、<>
BETWEEN...AND
IN( 集合)
LIKE 模糊查询
_ 单个任意字符
% 多个任意字符
IS NULL
and 或 &&
or 或 ||
not 或 !

MySQL三大类数据类型

数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型

数字类型
整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year
字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

函数

MySQL函数用来实现数据库操作的一些高级功能, 这些函数大致分为以下几类: 字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数

其他操作

查看数据库的占用空间大小

use information_schema;

#查看所有数据库大小
select concat(round(sum(data_length/1024/1024),2),'MB') as data_size from tables; #查看home库的大小 #查看home库下的members表的大小
SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESCselect concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='home'; # 查看所有数据库容量大小
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='home' and table_name='members'; #查看所有数据库各表容量大小
select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from
information_schema.tables group by table_schema order by sum(data_length) desc, sum(index_length) desc; select table_schema as '数据库', table_name as '表名', table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)' from information_schema.tables order by data_length desc, index_length desc;

开启慢查询

show variables like '%version%';    #显示当前数据库中与版本号相关的东西
slow_query_log 的值为ON为开启慢查询日志,OFF则为关闭慢查询日志
slow_query_log_file 的值是记录的慢查询日志到文件中(注意:默认名为主机名.log,慢查询日志是否写入指定文件中,需要指定慢查询的输出日志格式为文件,相关命令为:show variables like ‘%log_output%’;去查看输出的格式)
long_query_time 指定了慢查询的阈值,即如果执行语句的时间超过该阈值则为慢查询语句,默认值为10秒
log_queries_not_using_indexes 如果值设置为ON,则会记录所有没有利用索引的查询(注意:如果只是将log_queries_not_using_indexes设置为ON,而将slow_query_log设置为OFF,此时该设置也不会生效,即该设置生效的前提是slow_query_log的值设置为ON),一般在性能调优的时候会暂时开启
show variables like '%query%';
show global status like ‘%slow%’; #查询当前慢查询的语句的个数
select sleep(1); #制造慢查询语句
set global slow_query_log=1; #开启慢查询功能,1是开启,0是关闭
set global long_query_time=1; #慢查询时间设置为1秒,5.6之后允许设置少于1秒,例如0.1秒
set global slow_query_log_file='/tmp/slow_querys.log';
set global log_output='TABLE'; #设置慢查询记录到表中 #查看零时慢查询功能设置是否成功
show variables like 'long%';
show variables like 'slow%';
mysqldump slow -s c -t 10 `/usr/local/mysql/data/community-dev3-slow.log`

状态查询

select user(); #查询当前登陆的用户
show engine innodb status; #看看InnoDB所有的数据都已经同步到磁盘上去了
how status like '%threads%'; #查看连接数
show variables like '%connection%';
mysql -uroot -p123456 -h127.0.0.1 hellodb -e show tables

字符集设置

遵循的标准:数据库,表,字段和页面或文本的编码码统一
show variables like '%character%'; 查看数据库字符集
/etc/my.cnf default-character-set = utf8 修改字符集为utf8
alter database mydb character set utf8;
create database mydb character set utf8; 临时设置数据库字符集
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;

忘记密码重置

忘记root密码更改配置文件采取使用免密启动,更改密码后再还原重启,跳过权限表的限制,不用密码验证,直接登录数据my.cnf在 [mysqld] 中添加 skip-grant-tables

# 1 my.cnf  [mysqld] 中添加 skip-grant-tables字段

# 2 重启DB,重置密码
service mysqld restart
mysql -h localhost
use mysql;
update user set password = password('new-password') where user='root';
update mysql.user set authentication_string=password('123456') where user='root' and host='localhost';
flush privileges; # 3 删除skip-grant-tables重启mysql服务即可

剩下的交给DBA

mysql数据库-运维合集的更多相关文章

  1. MySQL数据库运维课程

    MySQL数据库运维课程 http://www.dataguru.cn/article-4834-1.html?union_site=comm100 课程大纲 第一课:机器选型.系统规划 第二课:安装 ...

  2. MySQL数据库运维的五大指标

    如何评价一个公司数据库运维水平的高低?用什么来进行横向与纵向对比?自动化平台建设的目标是什么?必须有相应的指标体系来指导,此指标体系必须满足以下条件: • 可以用数字来测算和衡量 • 最终指标,而不是 ...

  3. mysql数据库运维方案

    数据库不仅仅是dba的工作,每一个测试人员也应该懂得基本的数据运维操作,因为数据库是数据承载的地方并且是系统中非常重要的一部分,所以我们也需要熟练的对数据库进行基本维护. 01.常用备份恢复命令 第1 ...

  4. MYSQL数据库相关知识合集

    1  MYSQL取得某一范围随机数: 关键词:RAND() [产生0~1之间的随机数] mysql> SELECT RAND( ), RAND( ), RAND( ); +----------- ...

  5. 随笔编号-06 MYSQL数据库相关知识合集

    1  MYSQL取得某一范围随机数: 关键词:RAND() [产生0~1之间的随机数] mysql> SELECT RAND( ), RAND( ), RAND( ); +----------- ...

  6. 部署MySQL自动化运维工具inception+archer

    ***************************************************************************部署MySQL自动化运维工具inception+a ...

  7. 有赞MySQL自动化运维之路—ZanDB

      有赞MySQL自动化运维之路—ZanDB 一.前言 在互联网时代,业务规模常常出现爆发式的增长.快速的实例交付,数据库优化以及备份管理等任务都对DBA产生了更高的要求,单纯的凭借记忆力去管理那几十 ...

  8. 一个兼职DBA的数据库运维经验 小米科技 xx@xiaomi.com 2011

    一个兼职DBA的数据库运维经验 小米科技  xx@xiaomi.com 2011 内存扩容 16G->64G ,调大bp后,凌晨说监控物理内存有余量情况下,开吃swap,内存泄露措施1  定时 ...

  9. 数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?

    从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求. 从人工运维到自 ...

随机推荐

  1. Pytorch系列:(三)模型构建

    nn.Module 函数详解 nn.Module是所有网络模型结构的基类,无论是pytorch自带的模型,还是要自定义模型,都需要继承这个类.这个模块包含了很多子模块,如下所示,_parameters ...

  2. TCP:与UDP区别、三次握手、四次挥手、Socket 编程

    1. TCP 基本认识 TCP 头部格式 为什么需要 TCP 协议?TCP 工作在哪一层? 什么是 TCP ? 什么是 TCP 连接? 如何唯一确定一个 TCP 连接呢? 有一个 IP 的服务器监听了 ...

  3. 2021最新版Dubbo-admin+Zookeeper安装教程

    安装程序包 这是写教程时收集好的文件,可直接点击下载,也可以跟着步骤自行下载:https://hanzhe.lanzous.com/ihna9jzcsze Zookeeper下载地址,任选其一点击下载 ...

  4. Xposed框架Hook Android应用的所有类方法打印Log日志

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80954759 在进行Android程序的逆向分析的时候,经常需要Android程 ...

  5. POJ3080方法很多(暴力,KMP,后缀数组,DP)

    题意:       给n个串(n>=2&&n<=10),每个串长度都是60,然后问所有串的最长公共子串,如果答案不唯一输出字典序最小的. 思路:直接暴力,枚举+KMP,后缀 ...

  6. UVA10391复合词

    题意:      给定一个词典,然后问里面那些是复合词,复合词就是当前这个单词正好是有两个单词拼接而成. 思路:       用map来标记是否出现过,然后先按长短排序,把每个单体拆分成任意两个可能的 ...

  7. postgresql高级应用之合并单元格

    postgresql高级应用之合并单元格 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14732172.html 1.写在前面✍ 继上一篇postgresql高 ...

  8. 【python】Leetcode每日一题-直方图的水量(接雨水)

    [python]Leetcode每日一题-直方图的水量(接雨水) [题目描述] 给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1. 上面是由数组 ...

  9. jpa查找数据库最新一条消息

    主要字段说明: pid:指导记录主键 user_pid:用户主键 competition_project_pid:用户作品 Mysql表 Repository /** * 指导记录 * @date 2 ...

  10. Getting Started and Beyond|云原生应用负载均衡选型指南

    作者 冉昕,腾讯云服务网格TCM产品经理,现负责云原生流量接入网关与应用通信可观测性等产品特性策划与设计工作. 刘旭,腾讯云高级工程师,专注容器云原生领域,有多年大规模 Kubernetes 集群管理 ...