MySQL的备份与还原

MySQL的备份与还原

    • 1、创建一个新表并插入原表所有数据
    • 2、创建一个新表,只插入指定字段
    • 3、关闭服务冷备份还原 (复制文件夹)
    • 4、通过 mysqldump 命令备份还原新数据库
      • 4.1、单一数据库
      • 4.2、多个数据库
      • 4.3 还原
    • 5、mysqlhotcopy工具快速备份


1、创建一个新表并插入原表所有数据

create table Person-bak as select from Person

2、创建一个新表,只插入指定字段

create table Person-bak as select id,personName from Person

需要注意,原表的主外键设置并不会复制到新表中

#eg:

create table person3 as select * from person;
create table person3 as select  id,name from person;		
select * from person3

3、关闭服务冷备份还原 (复制文件夹)

停止服务
拷贝Data文件夹到备份目录
开启服务
删除数据测试 delete from person where id>1;
关闭服务
拷贝‘备份的data文件夹’覆盖需要还原的Data文件夹
启动服务
select * from person

4、通过 mysqldump 命令备份还原新数据库

4.1、单一数据库

mysqldump基本语法:

mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql

测试:

root:
        mysqldump -u root -p test test > /usr/xmp/BackupTest.sql ;
        mysqldump -u root -p test xmp > /usr/xmp/BackupXmp.sql ;
user:
        mysqldump -u newuser -p test test > /usr/xmp/BackupTest-User.sql ;
        mysqldump -u newuser -p test xmp > /usr/xmp/BackupXmp-User.sql ;

其中:
dbname参数表示数据库的名称;

  • table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
  • BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

使用root用户备份test数据库下的person表

mysqldump -u root -p root test person > D:\backup.sql

4.2、多个数据库

mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

加上了–databases选项,然后后面跟多个数据库

mysqldump -u root -p --databases test test2 > D:\backup.sql

4.3 还原

	use test
	source /usr/xmp/BackupTest.sql ;

5、mysqlhotcopy工具快速备份

  mysqlhotcopy 是 MySQL 官方提供的备份工具之一,它可以使用非常快速的方式对 MyISAM 存储引擎的数据表进行备份。

mysqlhotcopy 的使用非常简单,只需要在命令行中输入:

mysqlhotcopy -u 用户名 -p 密码 数据库名 备份目录

其中,

  • 用户名 和 密码 是访问 MySQL 数据库的用户名和密码
  • 数据库名 是要备份的数据库名称
  • 备份目录 是备份数据的目录。

  mysqlhotcopy 工具备份的是 MyISAM 存储引擎的数据表,它的备份速度非常快,备份过程中不会锁定表,但需要注意的是,mysqlhotcopy 工具不能备份 InnoDB 存储引擎的数据表,因为 InnoDB 存储引擎的数据文件是共享的,不能直接复制。

如果要恢复使用 mysqlhotcopy 工具备份的数据表
只需要将备份目录中的数据表复制回 MySQL 数据库的数据目录即可

需要注意的是,mysqlhotcopy 工具不支持备份整个 MySQL 数据库
如果要备份整个数据库,可以使用 mysqldump 工具

你可能感兴趣的:(Mysql,mysql,数据库,sql)