时间:2021-07-01 10:21:17 帮助过:17人阅读
mysql数据备份与还原 mysql数据备份与还原 数据备份 mysqldump备份 直接复制这个数据库目录 mysqlhotcopy工具快速备份 数据还原 mysql命令还原 使用source 命令导入备份sql文件 使用直接复制到数据目录的方法 mysqlhotcopy快速恢复 数据备份 mysqldump备份 m
mysqldump备份的基本语法格式如下:
mysqldump -u user -h host -p password dbname[tbname,[tbname...]] > filename.sql
mysqldump -u root -p booksDB > /Users/frankstar/Desktop/booksDB_20160510.sql
输入密码后,桌面即可看见备份的数据库文件,文件开头是mysqldump工具的版本号,然后是备份账户的名称与主机信息,以及数据库的名称,服务器的版本号等。下面是SET语句,主要是涉及恢复时数据库的系统变量值,最后几行使用SET语句恢复服务器系统变量原来的值。
mysqldump -u root -p booksDB books > /Users/frankstar/Desktop/books_20160510.sql
mysqldump -u root -p --databases booksDB JavaStudy > /Users/frankstar/Desktop/bookDB_JavaStudy_20160510.sql
mysqldump -u root -p --all-databases > /Users/frankstar/Desktop/allDatabases_20160510.sql
提示:如果数据库中表都是MyISAM表,可考虑使用mysqlhotcopy,提高效率。
可以直接复制数据库的存储目录和文件进行备份。这个方法对Innodb存储引擎的表不适合,同时还要求数据库版本要一致,否则可能出现不兼容。首先备份前需要进行LOCK TABLES操作,然后执行FLUSH TABLES,复制数据库文件时应该允许用户查询,需要FLUSH TABLES语句来确保开始备份前将所有的激活索引页写入到硬盘。最好的办法是停止服务进行复制。
mysqlhotcopy必须要可以访问备份的数据表文件,具有表的SELECT、RELOAD、LOCK TABLES等权限,同时它只适用于MyISAM和ARCHIVE存储引擎的表。
语法格式如下:
mysqlhotcopy -u root -p JavaStudy /Users/frankstar/Desktop/JavaStudy
它只是将表所在目录复制到另一个目录下,类似直接的复制cp/scp来备份数据库。
语法格式如下:
mysql -u root -p booksDB < /Users/frankstar/Desktop/booksDB_20160510.sql
提示:首先数据库中要有这个还原的数据库,即使是空的。
首先登陆到服务器上,使用如下语法:
#source filename;
mysql> use booksDB ;
mysql> source /Users/frankstar/Desktop/booksDB_20160510.sql
将之前通过复制备份数据库的数据目录与文件复制到mysql的数据目录下实现还原,这种方法要求数据库的主版本号需要相同,同时要求是MyISAM表,同时需要停止数据库服务以及更改数据文件的属主与属组为mysql
与直接复制到数据目录的方法类似,也需要停止服务,更改数据文件的属主和属组,如下:
chown -R mysql:mysql /var/lib/mysql/db_name
复制语法:
cp -R /Users/frankstar/Desktop/JavaStudy /usr/local/var/mysql/JavaStudy