- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8-MySQL用户管理
数据备份与还原
尽管采取了一些管理措施来保证数据库的安全,但是不确定的意外情况总是有可能造成数据的损失,例如意外的停电、管理员不小心的操作失误都可能会造成数据的丢失。保证数据安全的最重要的措施是确保对数据进行定期备份。如果数据库中的数据丢失或者出一了错误,可以使用备份的数据进行还原,这样就尽可能的降低了意外原因导致的损失。MySQL提供了多种方法对数据进行备份和还原,本章将介绍数据备份、数据还原、数据迁移和数据导入导出的相关知识。
数据备份
数据备份是数据库管理员非常重要的工作。系统意外崩溃或者硬件的损坏都可以能导致数据库的丢失,因此MySQL管理员应该定期地备份数据库,使得在意外情况发生时,尽可能减少损失。本节将介绍数据备份的3种方法。
使用mysqldump命令备份
myslqdump是MySQL提供的一个非常有用数据库备份工具。mysqldump命令执行时,可以将数据库备份成一个文本文件,该文件中实际上包含了多个CREATE和INSERT语句,使用这些语句可以重新创建表和插入数据。
mysqldump备份数据库语句的基本语法格式如下:
mysqldump –u user -h host –ppassword dbname[tbname,[tbname…]]filename.sql
user表示用户名称;host表示登录用户的主机名称;password为登录密码;dbname为需要备份的数据库名称;tbname为dbname数据库中需要备份的数据表,可以指定多个需要备份的表;右箭头符号“”告诉mysqldump将备份数据表的定义和数据写入备份文件;filename.sql为备份文件的名称。
使用mysqldump命令备份单个数据库中的所有表
【例1】使用mysqldump命令备份数据库中的所有表
mysqldump -u root -p booksdb C:/backup/booksdbsql
输入密码之后,MySQL便对数据进行了备份。
可以看到,备份文件包含了一些信息,文件开头首先表明了备份文件使用r mysldump工具的版本号;然后是备份帐户的名称和主机信息,以及备份的数据库的名称,最后是MySQL服务器的版本号。
备份文件接下来的是一些SET语句,这些语句将一些系统变量值赋给用户定义变量,以确保被恢复的数据库的系统变量和原来备份时的变量相同。例如:
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
该SET语句将当前系统系统character_set_client的值给用户定义变量@old_character_set_client。其它变量与此类似。
备份文件的最后几行MySQL使用ASET语句恢复服务器系统变量原来的值,例如:
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
该语句将用户的变量@old_character_set_client中保存的值赋给实际的系统变量character_set_client。
备份文件中的“—”字符开头的行为注释语句,以“/*!”开关不、“*/”结尾的语句为可执行的MySQL注释,这些语句可以被MySQL执行,但在其他数据库管理系统将被作为注释忽略,这可以提高数据库的可移植性。
另外注意到,备份文件开始的一些语句以数字开头,这些数字代表MySQL版本号,该数字告诉我们,这些语句只有在指定的MySQL版本或者比该版本高的情况下才能执行。例如:40101,表明这些语句只有在MySQL版本号为4.01.01或者更高的条件下可以执行。
使用mysqldump备份数据库中的某个表
在前面myaqldump语法中介绍过,mysqldump还可以备份数据中的某个表,其语法格式为:
mysqldump –u root –h host –p dbname [tbname,[tbname…]] filename.sql
tbname表示数据库中的表名,多个表名之间的空格隔开。
备份表和备份数据库中所有表的语句中不同的地方在于,要在数据库名称dbname之后指定需要备份的表名称。
【例2】备份booksDB数据库中的books表
mysqldump -u root -p booksDB books C:/backup/bookssql
该语句创建名称为bookssql的备份文件,文件中包含了前面介绍的SET语句等内容,该文件只包含books表的CREATE和INSERT语句。
使用mysqldump备份多个数据库
如果要使用mysqldump备份多个数据库,需要使
文档评论(0)