数据的备份与恢复与用户权限管理

一、数据的备份与恢复

将已有的数据复制一份,存放到其他的服务器上。MySQL提供的备份有很多,常见的有文本备份、数据备份、sql备份等

1、文本备份

  文本备份是最简单的一种备份方式!

  一般认为,文本备份只适合Myisam存储引擎的数据表,就是将数据表的三个文件(结构、数据、索引)备份到其他服务器就行了

  文本备份的特点:

    简单(只需要复制粘贴),每次都需要备份全部的文件,非常浪费磁盘空间

2、数据备份

1)备份语法

  select *|字段列表 into outfile 文件地址 from 表名;

  select * into outfile ‘d:/backup/php_student.txt’ from php_student;

  ① 首先要有目录名(backup),目录名不能省略

  ② 备份时,不能指定一个已经存在的文件存储备份的数据,文件只能由系统自动创建

2)还原语法

  load data infile 文件路径 into table 表名[字段列表];

  load data infile ‘d:/backup/php_student.txt’ into table php_student;

  直接往备份表中添加数据,在还原的时候也可以加载回来。

  前提条件就是文档中的记录的结构应该和表的结构是一致的!

3、SQL备份

sql备份是将表的结构和数据通过sql语句的形式进行备份  mysql中,有一个专门用来备份的客户端:mysqldump.exe

1)备份语法

  mysqldump  -hlocalhost –P3306  -uroot –p 数据库名[数据表1 数据表2……] > 存储路径

如果只有数据库名,没有数据表名,意思就是备份整个数据库!  mysqldump  –uroot  –p  php2016  php_student  >  d:/backup/php_student.sql

2)还原语法

有两种方式:

第一种:使用mysql客户端还原

  语法形式为:

  mysql  -hPup 数据库名字 < 备份路径    mysql –uroot –p php2016  <  d:/backup/php_student.sql

第二种:使用sql命令

  source 备份路径;

sql备份的特点:

  ①  可以备份表结构,更安全

  ②  备份是对整表进行备份,耗时比较长,备份的文件也比较大,比较浪费磁盘空间

在真实的项目中,一般可以采用n天轮流备份策略!  比如:只备份最近7天的数据

二、用户权限管理

根据不同的项目给员工分配不同的用户,再给不同的用户分配不同的权限来管理和维护不同的数据库

1、创建用户

在mysql中,所有的用户都在mysql数据库下的user表中,user表中的字段有很多,但是最重要的是前三个字段:Host , User , Password

  create user 用户名[@主机地址] identified by '密码';

创建一个可以局域网访问的用户
create user 'user2'@'192.168.148.%' identified by '123456';

创建一个可以全网访问的用户
create user 'user3' identified by '123456';

2、给用户分配权限
  grant 权限列表 on 数据库.数据表 to 用户(用户名@主机地址);

  grant select,update on php2016.php_student to 'user2'@'192.168.148.%';

3、回收权限
  revoke update on php2016.php_student from 'user2'@'192.168.148.%';

4、删除用户
  drop user 'user1'@'localhost';

 

三、密码管理

1、修改root密码

一般有两种方式可以修改:

1)通过mysqladmin修改

mysqladmin也是一个客户端,通常用于执行一些管理性的工作,其中也可以修改root用户的密码

  mysqladmin -hPup password 新密码

2)先登录到服务器,直接使用以下的命令修改:

  set password = password('新密码')  //该方法同样适用于普通用户

 

2、root用户修改普通用户的密码

  set password for 'username'@'主机地址' = password('new_password');

 

3、root密码找回

  1)停止mysql服务net stop mysql

  2)进入mysql的安全模式,即不用输入密码就能进入数据库

    mysqld -nt --skip-grant-tables;

  3)重新打开一个cmd命令行窗口,输入mysql –uroot –p,使用空密码的方式登录mysql

  4)输入以下的命令开始修改root用户的密码

    update mysql.user set password=password(‘new_password’) where user=’root’;

  5)刷新权限

    flush privileges;

  6)退出:quit

  7)在内存中结束mysqld进程!

  8)重新启动mysql服务器

找回root密码的时候一定要快!因为在安全模式下,mysql服务器是最脆弱的,所有的人都可以不需要密码直接以root用户的身份登录,而且都是超级管理员的权限!

原文地址:https://www.cnblogs.com/Hansen32/p/6120372.html