1、数据的备份和还原
2、在数据库中创建和删除用户
3、对数据库的权限进行授予、查看和收回操作
一、数据的备份和还原
数据的备份
1、备份单个数据库
–利用记事本对sql打开
-- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64)
--
-- Host: localhost Database: chapter08
-- ------------------------------------------------------
-- Server version 5.7.13-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `student`
--
DROP TABLE IF EXISTS `student`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `student`
--
LOCK TABLES `student` WRITE;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT INTO `student` VALUES (1,'Tom',20),(2,'Lucy',16),(3,'Lily',18);
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-02-22 22:24:18
2、备份多个数据库
若有多个数据库需要用空格分开
mysqldump -uusername -ppassword --database dbname1[dbaname2 dbname3 …]>filename.sql
3、备份所有数据库
mysqldump -uusername -ppassword --all-databases>filename.sql
数据的还原
还原是指还原数据库中的数据,库是不能被还原的
演示如下
1、删除数据库
DROP DATABASE chapter08;
2、创建数据库
CREATE DATABASE chapter08;
3、还原数据
重新启动一个DOS命令窗口,利用mysql -uroot -ppassword 数据库名<C:/backup/chapter08_20190222
4、查看数据
二、用户管理
1、user表,位于mysql数据库中,表中的常见字段
查看表的结构信息 DESC 表名
2、创建普通用户
通常一个用户无法管理
3、删除普通用户
(1)DROP USER ‘username’@‘hostname’[,‘username’@‘hostname’];
(2)DELETE FROM 数据库.表名 WHERE 条件信息
4、修改用户密码
mysql中,root用户具有最高的权限,不仅可以修改自己的密码,还可以修改普通用户的密码,对于普通用户只能修改自己的密码。
(1)修改root用户密码
a\使用mysqldamin命令修改root用户的密码
先进入C盘指定目录
b、使用update修改root用户密码
注意user表中没有password字段,但是用authentication_string替代的,并刷新
验证:
c、使用SET语句修改root用户密码
root用户登录到mysql服务器后,可以通过SET语句修改root用户的密码
SET PASSWORD=PASSWORD(‘new_password’)
验证
(2)root用户修改普通用户密码
a、使用GRANT语句修改普通用户密码
GRANT USAGE ON . TO ‘username’@‘localhost’ INDETIFIED BY [PASSWORD]‘new_password’;
b、使用UPDATE语句修改普通用户密码
UPDATE mysql.user set Password=PASSWORD(‘new_password’)
WHERE User='username’and Host=‘hostname’;
c、使用SET语句修改普通用户密码
SET PASSWORD FOR ‘username’@‘localhost’ =PASSWORD(‘new_password’);
(3)普通用户修改密码
普通用户也可以自己修改密码,登录到mysql服务器后,可以通过SET语句设置自己密码,并需要PASSWORD函数加密
SET PASSWORD=PASSWORD(‘new_password’);
三、解决root用户密码丢失
1、停止MYSQL服务器,
2、打开DOS命令行窗口,如左图
3、再打开另一个窗口,进行如右图操作
四、权限管理
MySQL中的权限信息被存储在MySQL数据库的user,db,host,table_priv,column_priv和procs_priv表中,当MySQL启动时就会自动加载这些权限。
1、MySQL的权限
MySQL的权限信息,权限名称有CREATE,DROP,ALTER,DELETE,INDEX,UPDATE
2、授予权限
利用GRANT语句给用户授予不同的权限
GRANT privileges[(column)][,privileges[(column)]] ON database.table
TO ‘username’@‘hostname’ [IDENTIFIED BY [PASSWORD]‘password’]…
[WITH with_option [with_option]…]
privileges表示权限类型
3、查看权限
SHOW GRANTS FOR ‘username’@‘localhost’;
4、收回权限
为了保证数据库的安全性,需要将用户不必要的权限收回,例如某个用户不应该有DELETE权限。利用REVOKE
REVOKE privileges[(column)][,privileges[(column)]] ON database.table
FROM ‘username’@‘hostname’
例如对USER4收回INSERT权限
(2)收回user4的所有权限