以下所有操作都是在doc命令中执行
一、数据备份
mysqldump将数据库中的数据备份成一个文本文件,enter password是输入mysql数据库的密码
备份一个指定数据库的一个表
如果数据库后面没有表,则备份整个数据库
-u 指定用户 -p 指定数据库 数据库后面可以添加多个要备份的属于你要备份数据库的表 最后面是备份到的哪个文件,可以给出相对路径也可以是绝对路径,文件后缀名不一定要是’.sql’
指定路径下寻找备份好的文件
打开文件,以“–”开头的都是SQL语句的注释,以“/*40101”开头的内容是只有MySQL版本大于或等于指定的4.1.1版时才执行的语句
文件中的create table会创建表,而insert会向表中插入数据,这两个语句都是用来恢复数据的时候用到的。
备份多个数据库
–database后面跟着数据库的名字
备份所有数据库
直接复制整个数据库目录
将mysql中的数据库文件直接复制出来,最好先停止服务器,这样可以保证在复制期间数据库中的数据不会发生变化。这种方法不是最好的备份方法,在此处不再多说
使用musqlhotcopy工具快速备份
备份时不能停止MYSQL服务器,可以采用此工具。
该工具主要在linux操作系统下使用
工作原理:先将需要备份的数据库加上一个读操作锁,然后用flush tables将内存中的数据写回到硬盘上的数据库中,最后把需要备份的书苦苦文件复制到目标目录
该工具不是MYSQL自带的,需要安装Pel数据库接口包
这是Perl的数据库接口包
基本命令: mysqlhotcopy[option] dbname1 dbname2… backupDir/
此中,dbnam1、2.。。。是需要备份的数据库的名称,backupDir是要被分到那个目录下的文件中
可以使用help查看mysqlhotcopy的帮助
二、数据恢复
直接复制到数据库目录
该方法对MyISAM类型的表有效,对InnoDB表的表空间不能直接复制
在linux系统下,复制到数据库目录后,一定要将数据库的用户和组变成mysql
chown -R mysql,mysql dataDir
两个mysql,前者为组后者为用户
数据库迁移
相同版本的MYSQL数据库之间的迁移
在数据库表都是MyISAM类型的时候使用复制数据库目录实现数据库迁移
但最安全的方式是:mysqldump命令备份数据库,然后mysql命令将备份的文件还原到新的MySQL数据库中