美文网首页
2021-07-14DBA数据库

2021-07-14DBA数据库

作者: 天生顽皮 | 来源:发表于2021-07-14 22:48 被阅读0次

数据库命令

(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

相关文章

  • 2021-07-14DBA数据库

    数据库命令 1.看图详解mysql 2.mysql体系结构及基础管理 2.1客户端/服务器工作模型(c/s) (1...

  • MySQL数据库day01

    系统数据库 ​​​ 创建数据库 ​​​ ​​​ ​​​ ​​​ 查看所有数据库 使用数据库 修改数据库 删除数据库...

  • 数据库操作

    创建数据库: 选择数据库: 查看数据库: 修改数据库: 删除数据库:

  • Ubuntu操作mysql数据库命令

    一、连接数据库 连接本地数据库 退出数据库 二、操作数据库 创建数据库 显示数据库 删除数据库 连接数据库 查看状...

  • 4-14

    创建数据库 createdatabase数据库名称; 删除数据库 dropdatabase数据库名称; 查看数据库...

  • [后端开发] Mysql学习笔记

    1.0 数据库 创建数据库 查看所有数据库 删除数据库 切换数据库名 查看正在使用的数据库 2.0 数据库表 创...

  • 2020最新最全数据库系统安全

    数据库标识与鉴别 数据库访问控制 数据库安全审计 数据库备份与恢复 数据库加密 资源限制 数据库安全加固 数据库安...

  • 2020-01-05 sql基本概念

    数据库用来储存数据。 数据库的种类大致有:层次数据库、关系数据库、面向对象数据库、XML数据库、键值数据库。 关系...

  • Mysql数据库基本操作

    连接数据库 退出数据库 查看数据库版本 显示数据库时间 查看当前使用的数据库 查看所有数据库 数据库备份 导入数据...

  • mysql命令行操作

    准备 登陆 数据库操作 查看现有数据库 创建数据库 删除数据库 查看数据库 使用数据库 查看当前数据库 表操作 新...

网友评论

      本文标题:2021-07-14DBA数据库

      本文链接:https://www.haomeiwen.com/subject/abfupltx.html