2021-07-14DBA数据库

数据库命令

(1)展示所有用户
select user,host from  mysql.user;
(2)提供专用连接线程
show  processlist;
(3)全库    show   databases;
表     
(4)表   use   mysql       show  tables;

1.看图详解mysql

image.png

2.mysql体系结构及基础管理

2.1客户端/服务器工作模型(c/s)

(1)本地scoket连接方式:
socket=/tmp/mysql.sock
mysql  -S   /tmp/mysql.sock

说明:只能在本地使用,不依赖于ip和端口
(2) 远程tcpip连接方式
mysql   -uroot   -p123  -h   10.0.0.51   -p  3306

2.2服务端:实例

实例:mysql+工作哦线程+预分配的内存结构
功能:管理数据

3.mysqlserver层

3.1连接层

1.提供连接协议(socket,tcp/ip)
2.验证
3.提供专用线程
mysq> show  processlist;

3.2sql层

1.语法检查
2.语义(DDL、DCL、CML、DTL..)
3.权限
4.解析器:解析预处理(沙盘)评估执行此语句的方法有哪些A方案(全盘扫描  全表 )  B方案(索引)   得出执行的计划
5.优化器:帮我们选择他认为最优的方案(基于代价cost)
6.执行器:按照优化器的选择执行sql语句
得出执行结果:你需要的数据在磁盘的什么位置
7.查询缓存(query_cache 默认不开启)可以redis替代
8.日志记录(binlog二进制日志,golg,需要认为开启)
image.png

3.3.存储引擎层

相当于linux文件系统,和磁盘交互的模块

mysql处理语句流程图

image.png

4.mysql的逻辑结构(操作对象)

逻辑-->抽象
--------------------------------------------------------
linux
目录:名字   +属性
文件:文件名 + 文件属性  +文件内容
---------------------------------------------------------
mysql
库    :   库名  +   库属性
表    :表名   +表属性   +  表内容    +   列
---------------------------------------------------------
库    show   databases;
表     use   mysql       show  tables;
列      desc    user;

5.mysql 物理存储结构

段  :一个表就是一个段,可以由一个或者多个区够成

区   :一个区(簇),默认1M,连续的64个pages

页   :一个页,默认16kb,连续的4个os block,最小的io单元

image.png

5.用户管理

5.1.用户的作用

linux用户:
     登录linux系统
     管理linux对象   文件  (linux一切都文件)
 mysql用户:
     登录musql数据库
     管理mysql对象    表  (mysql一切都表)

5.2用户的定义

linux用户:用户名
mysql用户:用户名@‘白名单’
白名单
地址列表,允许白名单的ip登录mysql,管理mysql
oldliu@'localhost'  :oldliu用户能够通过本地登录mysql
oldliu@'10.0.0.10' :oldliu用户

6.增删改查

6.1查

select  user,host  ,authentication_string  from mysql.user;
authentication_string   这是查看用户有没有密码,不写就会把所有用户写出来

MariaDB [(none)]> select  user,host  ,authentication_string  from mysql.user;
+--------+-----------+-----------------------+
| user   | host      | authentication_string |
+--------+-----------+-----------------------+
| root   | localhost |                       |
| root   | 127.0.0.1 |                       |
| root   | ::1       |                       |
| zabbix | localhost |                       |
+--------+-----------+-----------------------+
4 rows in set (0.00 sec)

6.2增

本地登录MariaDB [(none)]> create  user  oldliu@'localhost';   
ip登录并设置密码 create  user  oldyan@'10.0.0.%'   identified   by '123'; 

6.3改

6.4删除

MariaDB [(none)]> drop  user  oldliu@'localhost';
Query OK, 0 rows affected (0.00 sec)
注意8.0版本以前,是可以通过grant命令 建立用户+权限

7.权限管理

(1)作用

用户对数据库对象,有哪些管理能力

(2)权限的表现方式

具体命令
MariaDB [(none)]> show  privileges;
+-------------------------+---------------------------------------+-------------------------------------------------------+
| Privilege               | Context                               | Comment                                               |
+-------------------------+---------------------------------------+-------------------------------------------------------+
| Alter                   | Tables                                | To alter the table                                    |
| Alter routine           | Functions,Procedures                  | To alter or drop stored functions/procedures          |
| Create                  | Databases,Tables,Indexes              | To create new databases and tables                    |
| Create routine          | Databases                             | To use CREATE FUNCTION/PROCEDURE                      |
| Create temporary tables | Databases                             | To use CREATE TEMPORARY TABLE                         |
| Create view             | Tables                                | To create new views                                   |
| Create user             | Server Admin                          | To create new users                                   |
| Delete                  | Tables                                | To delete existing rows                               |
| Drop                    | Databases,Tables                      | To drop databases, tables, and views                  |
| Event                   | Server Admin                          | To create, alter, drop and execute events             |
| Execute                 | Functions,Procedures                  | To execute stored routines                            |
| File                    | File access on server                 | To read and write files on the server                 |
| Grant option            | Databases,Tables,Functions,Procedures | To give to other users those privileges you possess   |
| Index                   | Tables                                | To create or drop indexes                             |
| Insert                  | Tables                                | To insert data into tables                            |
| Lock tables             | Databases                             | To use LOCK TABLES (together with SELECT privilege)   |
| Process                 | Server Admin                          | To view the plain text of currently executing queries |
| Proxy                   | Server Admin                          | To make proxy user possible                           |
| References              | Databases,Tables                      | To have references on tables                          |
| Reload                  | Server Admin                          | To reload or refresh tables, logs and privileges      |
| Replication client      | Server Admin                          | To ask where the slave or master servers are          |
| Replication slave       | Server Admin                          | To read binary log events from the master             |
| Select                  | Tables                                | To retrieve rows from table                           |
| Show databases          | Server Admin                          | To see all databases with SHOW DATABASES              |
| Show view               | Tables                                | To see views with SHOW CREATE VIEW                    |
| Shutdown                | Server Admin                          | To shut down the server                               |
| Super                   | Server Admin                          | To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.   |
| Trigger                 | Tables                                | To use triggers                                       |
| Create tablespace       | Server Admin                          | To create/alter/drop tablespaces                      |
| Update                  | Tables                                | To update existing rows                               |
| Usage                   | Server Admin                          | No privileges - allow connect only                    |
+-------------------------+---------------------------------------+-------------------------------------------------------+
31 rows in set (0.00 sec)

(3)授权回收权限操作

语法
8.0以前
garnt   权限   on   to   用户  identified  by  '密码';
8.0后开始
create   用户   user  identified   by  '密码';
gant  权限(权限可以是多个)  on  对象  to  用户  identified  by  '密码';

权限介绍

ALL        : 管理员
具体权限: 业务用户  开发   运维等
Grant  option  :
gant  权限(权限可以是多个)  on  对象  to  用户  identified  by  '密码'   with  grant option;

对象: 库 表

管理员    *.*  :------> chmod    -R   755    /         根下的所有    
普通用户   oldliu.*   :------->   chmod   755   /oldliu    /oldliu目录下的所有
oldliu.t1  :-------->  chmod   755   /oldliu/t1   /oldliu/t1下的某个目录或者文件

(4)授权案例

案例1创建并授权管理员用户,能够通过10.0.0.%网段登录并管理数据库
grant  all   on   *.*   oldliu@'10.0.0.%'   identified   by  '123'   with   grant   option;
查询创建的用户
select    user,host   from   mysql.user;
查寻创建用户的权限
show  grants  for   oldliu@'10.0.0.%'  ;
案例2创建并授权一个app@’10.0.0.%‘业务用户,能够对app库下所有对象进行create,update,select
grant  create,update,select     to  app@'10.0.0.%'   identified   by  '123';  
查询
show   grants   for   app@'10.0.0.%';

(5)扩展mysql 授权表 (都在mysql库下)

user         :   *.*
db            :   app.*
tables_priv    :  app.t1
columns_priv     :   列
image.png

(6)回收权限

linux中
chmod  -R   755   /oldliu   ------->chmod   -R   644   /oldliu
###注意:mysql中不能通过重复授权修改权限,只能通过回收权限进行修改
回收权限
revoke  create  on  app.*  from 'app'@'10.0.0.%‘;

(7)查询用户的权限

select   *  from mysql.user/G

(8)超级管理员忘记密码

--skip-grant-tables: 跳过授权表
--skip-networking:跳过TCP/IP连接\
#a.关闭数据库
#b.使用安全模式启动 
mysql_safe   --skip-grant-tables     --skip-networking
或者
service mysql    start    --skip-grant-tables     --skip-networking
#c.登录数据库并修改密码
mysql   进入数据库
修改密码会报错,手工加载授权表
flush   privileges;
#d.重启数据库
进入数据库用修改过后的密码进入
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容