第8章 数据库的高级操作

数据库的备份:
备份方式:
1.备份单个数据库,mysqldump命令备份数据库的语法格式如下:

mysqldump -u 用户名 -p  数据库名 [1 [2]] > 存储路径/备份文件名.sql

2.备份多个数据库,mysqldump命令备份多个数据库的语法格式如下:

mysqldump –u 用户名 –p  -databases 数据库1  数据库2 > 存储路径/备份文件名.sql

3.备份所有数据库,使用mysqldump命令备份所有数据库的语法格式如下

  mysqldump –u 用户名 –p  -all-databases > 存储路径/备份文件名.sql

数据的还原:
这里指的还原是指还原数据库中的数据,库是不能被还原的。
(1)mysql命令还原数据无需登录数据库,直接在doc界面就可以完成。语法格式:

   mysql –u 用户名  –p  [dbname] < 存储路径/备份文件名.sql

(2)source 命令还原数据,需要登录到数据库才可以执行。语法格式:

  source filename.sql 

用户管理:
mysql数据库中,用户的相关信息保存在数据库系统里的mysql库中的user表中。包括了use,host,authentication_string,privilege等信息。(‘authentication_sting’对应mysql5.5版本的‘password’)

  1. 创建普通用户:

mysql版本的升级优化,mysql5.5版本中的grant语句和insert语句创建用户方式已不再试用。容易造成数据库的崩溃,建议大家直接规避这两种创建普通用户的方式。实际应用直接使用create user语句创建用户。语法格式:

CREATE USER 'username'@'hostname'  IDENTIFIED BY 'password'
             [,'username'@'hostname'[IDENTIFIED BY 'password']]

演示:创建一个新用户。用户名为user2,主机名为localhost密码为123。此方法创建的新用户无权限,只要登录权限。

   create user 'user2'@'localhost' identified by '123';

使用 select host,user,authentication_string from mysql.user;查询用户创建情况。

mysql> select host,user,authentication_string  from mysql.user;
+-----------+------------------+------------------------------------------------------------------------+
| host      | user             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | $A$005$3;(W#Ux'T%3M7tX77vqLlDGzgTqnNNO20dn6KsLSVjtq7WtJfxGT2XC |
| localhost | user2            | $A$005$w," 6phbQn:7Eax(RzEVfpR.IgUdx8y8uQ8eG9Tj8Bu.PmZCkrmVhwV/X0B |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
  1. 授予权限:

语法格式:

grant privileges on dbname.tbname  to 'username'@'hostname' [with with_option]#其中grant option 将自己的权限授予其他用户,也就是说他有授予权限,可以自己获取的权限授予别人。

演示:给创建的用户user2授予对所有数据的select权限。

 grant select on *.* to 'user2'@'localhost';

查询权限授予结果,使用show grants语句。

mysql> show grants for 'user2'@'localhost';
+--------------------------------------------+
| Grants for user2@localhost                 |
+--------------------------------------------+
| GRANT SELECT ON *.* TO `user2`@`localhost` |
+--------------------------------------------+
1 row in set (0.00 sec)
  1. 查看新增用户权限:

语法格式:

  show grants for 'username'@'hostname';

演示:查看新增用户user2的数据库操作权限。

show grants for 'user2'@'localhost'; 
#如发现结果为GRANT USAGE ON *.* TO `user2`@`localhost`  代表此用户只有登录权限。
  1. 修改用户密码:

    使用alter语句修改root用户密码。mysql8.0以上版本推荐使用此方法。 语法格式:

 alter user 'username'@'hostname' identified by 'new passerword';

演示:修改root用户密码改为20190001.

    alter user 'root'@'localhost' identified by '20190001';
  1. 收回权限:
    如因用户的工作调整或者其他原因,减少用户对数据库的操作权限,我们将用到收回权限。语法格式:
 revoke privileges [columns] on dbname.tbname from 'username'@'hostname';

演示:收回用户user2的select权限。

   revoke select on *.* from 'user2'@'localhost';
  1. 删除用户:

在实际应用中,如果用户账号不再使用,可将创建的普通用户删除。
1.使用drop语句删除用户。
语法格式:

drop user 'username'@'hostname' ;

演示:删除用户user2。

 drop user 'user2'@'localhost';

2.使用delete语句删除用户。
语法格式:

    delete from mysql.user where user = 'username';

演示:删除用户user3.

    delete from mysql.user where user = 'user3';

你可能感兴趣的:(MySQL数据库入门学习笔记)