MySQL
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面> MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
默认端口:3306
基础操作
- MySQL数据库安装
操作系统:Cent OS 6.9
安装MySQL:yum install -y mysql-server
启动MySQL:service mysqld start
第一次启动MySQL会初始化数据库
- 数据库登录
初次安装的MySQL数据库root用户没有登录密码,可以直接登录
命令:mysql -u root - 为MySQL管理账户(root)添加或者修改密码:
mysqladmin -u root -p password “新密码” ,回车输入原密码
- 交互式shell登录
命令:mysql -u root -p 回车输入密码
- 非交互式shell登录
命令:mysql -u root -p123456
- MySQL数据库有专属的命令语句又称为SQL语句,SQL语句不区分大小写
- MySQL非交互式执行SQL语句:mysql -u root -p密码 -e “SQL语句”
- MySQL中存储的内容:库(目录文件夹)- 表(xls表格)
- 显示MySQL中的所有库:show databases;
MySQL中默认存在三个库,information_schema、mysql、test - 显示数据库下的数据表
命令:use 数据库名;
show tables;
其中mysql中有一个名为user的数据表,其中存储了mysql管理账户的相关信息。所以该数据表也是SQL注入漏洞的主要目标。 - 获取数据表中的数据
select 字段名 from 表名 where 字段名=字段值;
select 后面跟字段名,多个字段名之间用逗号隔开,查询所有字段使用“*”代表。
where 后面跟查询条件,指定在数据表中查询什么样的数据,查询条件根据个人需求可有可无。
查询数据表中的所有数据:select * from 数据库.数据表;
user表中有三个重要字段:host、user、password
- 查看表结构
表中的所有字段名称、字段类型、是否允许为空,是否是数据表的主键,是否有默认值。
主键值是数据表中每一条数据的唯一标识,每个表中只能有一个主键,但是允许有联合主键,主键值不能为空。
- 数据库加固
将mysql库中user表中代表本机的三条数据,host字段为localhost、127.0.0.1以及::1并且对应的user字段为root的几条数据设置上相同的密码或者只留下一条其余没有密码的数据全删除掉 - 创建数据库
命令:create database 数据库名;
- 创建数据表
创建数据表时需指定在哪一个数据库下面创建数据表。有两种方式,一种是创建数据表之前使用use语句指定数据库,第二种是创建数据表的语句中的表名使用“数据库.数据表”的形式来表示。
命令:create table 数据库名.表名 (字段名 字段类型(字段长度),…,primary key(字段名));
- 修改表结构-添加字段
命令:alter table 数据库名.数据表名 add 字段名 字段值 字段类型(字段长度) [first | after 字段名]
- 修改表结构-修改字段
命令:alter table 数据库名.数据表名 modify 字段名 字段值 字段类型(字段长度) [first | after 字段名]
- 修改表结构-删除字段
命令:alter table 数据库名.数据表名 drop 字段名;
- 数据操作-添加数据
命令:insert into 数据库名.数据表名 [字段名,…] values (字段值,…)
- 数据操作-更新数据
命令:update 表名 set 字段名=“字段值” where 字段名=“字段值”;
- 数据操作-删除数据
命令:delete from 表名 where 字段名=“字段值” ;
- MySQL数据库备份
- 备份表文件(*.frm、*.MYD、*.MYI)
Linux操作系统中mysql数据库文件的存储路径:/var/lib/mysql(该路径是mysql的默认安装目录,并不是绝对的,可以在mysql的配置文件中修改该路径)
windows操作系统中mysql数据库文件存储路径:MySQL安装目录下的data目录中 - 命令字备份
mysqldump -u root -p密码 数据库名 数据表名 > /tmp/数据库名_数据表名.sql
恢复备份:mysql -u root -p密码 数据库名 < /tmp/数据库名_数据表名.sql
- 删库跑路
命令:drop table 数据表名;
命令:drop database 数据库名; - 用户管理
创建用户
命令:CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
host:允许用户从拿一台机器登录
删除用户
命令:DROP USER ‘username’@‘host’;
- 权限管理
授权:grant 权限种类 on 数据库名.数据表名 to ‘username’@‘host’ identified by “password”;
权限种类:select delete update create drop等,多个权限之间可以使用逗号隔开,所有权限可以用all privileges代替。
设置用户张三对kaso.test拥有查询权限
设置张三对kaso.test的所有权限
撤权:revoke 权限种类 on 数据库名.数据表名 from ‘username’@‘host’;
撤销zhangsan对kaso.test的update权限
- root用户密码破解
限制条件:需要MySQL数据库停止工作,而且必须是Linux操作系统的root用户才有权限。
- 以安全模式启动MySQL
命令:mysqld_safe --skip-grant(跳过权限验证)
mysql -u root - 修改root用户密码
命令:update mysql.user set password=password(“新密码”) where user = “root”;
3. 退出安全模式,启动mysql服务,重新登陆。