mysql数据备份与还原

mysql数据备份与还原

      • mysql数据备份与还原
        • 数据备份
          • mysqldump备份
          • 直接复制这个数据库目录
          • mysqlhotcopy工具快速备份
        • 数据还原
          • mysql命令还原
          • 使用source 命令导入备份sql文件
          • 使用直接复制到数据目录的方法
          • mysqlhotcopy快速恢复

数据备份

mysqldump备份

mysqldump备份的基本语法格式如下:

mysqldump -u user -h host -p password dbname[tbname,[tbname...]] > filename.sql 
  • 使用mysqldump备份单个数据库中的所有表
 mysqldump -u root -p booksDB > /Users/frankstar/Desktop/booksDB_20160510.sql

输入密码后,桌面即可看见备份的数据库文件,文件开头是mysqldump工具的版本号,然后是备份账户的名称与主机信息,以及数据库的名称,服务器的版本号等。下面是SET语句,主要是涉及恢复时数据库的系统变量值,最后几行使用SET语句恢复服务器系统变量原来的值。

  • 使用mysqldump备份数据库中的某个表
mysqldump -u root -p booksDB books > /Users/frankstar/Desktop/books_20160510.sql
  • 使用mysqldump备份多个数据库
mysqldump -u root -p --databases booksDB JavaStudy > /Users/frankstar/Desktop/bookDB_JavaStudy_20160510.sql
  • 使用–all-databases备份全部数据库
mysqldump -u root -p --all-databases > /Users/frankstar/Desktop/allDatabases_20160510.sql

提示:如果数据库中表都是MyISAM表,可考虑使用mysqlhotcopy,提高效率。

直接复制这个数据库目录

可以直接复制数据库的存储目录和文件进行备份。这个方法对Innodb存储引擎的表不适合,同时还要求数据库版本要一致,否则可能出现不兼容。首先备份前需要进行LOCK TABLES操作,然后执行FLUSH TABLES,复制数据库文件时应该允许用户查询,需要FLUSH TABLES语句来确保开始备份前将所有的激活索引页写入到硬盘。最好的办法是停止服务进行复制。

mysqlhotcopy工具快速备份

mysqlhotcopy必须要可以访问备份的数据表文件,具有表的SELECT、RELOAD、LOCK TABLES等权限,同时它只适用于MyISAM和ARCHIVE存储引擎的表。

语法格式如下:

mysqlhotcopy -u root -p JavaStudy /Users/frankstar/Desktop/JavaStudy

它只是将表所在目录复制到另一个目录下,类似直接的复制cp/scp来备份数据库。

数据还原

mysql命令还原

语法格式如下:

mysql -u root -p booksDB < /Users/frankstar/Desktop/booksDB_20160510.sql

提示:首先数据库中要有这个还原的数据库,即使是空的。

使用source 命令导入备份sql文件

首先登陆到服务器上,使用如下语法:

#source filename;
mysql> use booksDB ;
mysql> source /Users/frankstar/Desktop/booksDB_20160510.sql
使用直接复制到数据目录的方法

将之前通过复制备份数据库的数据目录与文件复制到mysql的数据目录下实现还原,这种方法要求数据库的主版本号需要相同,同时要求是MyISAM表,同时需要停止数据库服务以及更改数据文件的属主与属组为mysql

mysqlhotcopy快速恢复

与直接复制到数据目录的方法类似,也需要停止服务,更改数据文件的属主和属组,如下:

chown -R mysql:mysql /var/lib/mysql/db_name

复制语法:

cp -R /Users/frankstar/Desktop/JavaStudy /usr/local/var/mysql/JavaStudy

你可能感兴趣的:(mysql,数据库,备份,数据备份)