Mysql入门二十小题(DBA老司机带你删库到跑路)2018.11.26

1、 请介绍数据库管理系统的种类及代表产品

RDBMS: mysql oracle mssql

NoSQL: redis  mongoab  memcache

2、 请简述数据库管理系统的作用

数据存储,管理数据,备份恢复,安全性,权限管理,

3、 请简述RDBMS和NoSQL的特性对比

 

RDBMS:强大的查询功能、强一致性、二级索引、支持事务。支持SQL

NoSQL:灵活性强,可扩展,性能高,支持分布式。不支持SQL,json

4、 请简述数据库启动报错的基本处理思路

扫描二维码关注公众号,回复: 4380392 查看本文章

(1)命令行有没有报错

(2)错误日志

5、 简述实例的构成

进程+多个线程+预分配内存结构

6、 简述SQL的执行过程(连接层——SQL层——存储引擎层)

连接层:提供连接协议(TCP/IP 、 socket)

验证用户的合法性

接收SQL语句,并传递给SQL层

SQL:接收连接层传来的SQL语句

判断语法(如果语法有错,报语法错误)

判断语义

解析器

优化器

执行器

提供一个专用线程和存储引擎层交互

如果有缓存,记录到缓存,记录日志

存储引擎层:接收SQL层传来的SQL语句

去文件中取出相应数据

结构化成表,返回给SQL

7、 mysql命令常用options

-u用户名 -p密码 -h主机域 -S  socket文件  -P端口  -e 执行SQL

-u:指定用户
-p:指定密码
-h:指定主机
-P:指定端口
-S:指定sock
-e:指定SQL

8、 简述my.cnf文件的功能

影响实例启动

影响客户端连接

9、 列出mysql启动和关闭的方法

centos6:/etc/init.d/mysqld start stop

centos7:systemctl start stop mysqld

mysqld_safe &

mysqladmin -u -p shutdown

10、 简述mysql配置文件读取顺序

/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf(前提是在环境变量中定义了MYSQL_HOME变量)
defaults-extra-file=/tmp/my.cnf
~/my.cnf

–defaults-extra-file 加上这个参数以上配置文件均不读取

11、请简述忘记root用户密码的解决思路

(1)先停库

(2)mysqld_safe –skip-grant-tables –skip-networking &

(3)连库(mysql)

(4)使用update修改密码

12、请写出MySQL中修改密码的方法(不需要写出具体SQL)

(1)update

(2)set

(3)grant

(4)mysqladmin

13、请概括MySQL的逻辑结构

库,表,元数据,列

14、请概括MySQL的物理结构(一句话说明)

Mysql的物理结构就是最底层的数据文件

15、企业中开发让你开MySQL的用户,请简述开用户的流程及思路

开发人员说:请给我开一个用户
沟通:

  • 1、你需要对哪些库、表进行操作

  • 2、你从哪里连接过来

  • 3、用户名有没有要求

  • 4、密码要求

  • 5、发邮件

开发人员说:Root用户给我呗??

沟通: what?

16、MySQL的用户是如何定义的,有哪几种写法?

  • 1) username@’主机域’

  • 2)主机域:可以理解为是MySQL登陆的白名单

  • 3)主机域格式:

    • ’10.0.0.51’

    • ’10.0.0.5%’

    • ’10.0.0.%’

    • ’10.0.%.%’

    • ’10.%.%.%’

    • ‘%’

    • ‘db01’

    • ’10.0.0.51/255.255.255.0’

17、请说出下列SQL语句的含义:

1)grant all on . to user1@’localhost’ identified by ‘123’;

授权:给user1用户在本地授权所有库,所有表,所有权限,并且密码是123.

2)grant update,insert,delete on wordpress.* to user2@’localhost’ identified by ‘123’;

授权:给user1用户在本地授权wordpress库,所有表,修改,插入,删除权限,并且密码是123.

3)grant select(host,user) on mysql.user to user3@’10.0.0.5%’identified by ‘123’;

授权:给user1用户在mysql库,user表中的host和user字段,查看权限,并且密码是123.

18、请概述MySQL中的段、区、页概念?

段: 多个区构成的

区:多个页构成

页:mysql中最小单位(16k为一页)

19、什么是分区表?

一个区构成一个段就是分区表。

20、扩展题:
1. 创建一个库(student)

create database student;

2. 在student库内创建表(stu)

create table stu(id int)

3. 表中字段
a) id 数据类型 整数

b) name 数据类型 varchar

c) sex数据类型 枚举类型

  1. 修改表中字段

  2. 添加字段(weight 默认值 0)

alter table stu add name varchar(20),add sex enum(‘f’,’m’);

alter table stu modify sex enum(‘f’,’m’,’xingxing’);

alter table stu add weight int default 0;


猜你喜欢

转载自blog.51cto.com/14082573/2326485