mysql数据库如何备份?
mysql数据库如何备份?
mysql数据库如何备份? 如何对mysql数据库进行备份
简单的有3种。
1. 全备份,可以直接把 data目录下该数据库目录直接打包保存。
2. 使用 保存成sql文件。
3. 保存bin-log日志,(属于增量备份)简单的有3种。
1. 全备份,可以直接把 data目录下该数据库目录直接打包保存。
2. 使用 保存成sql文件。
3. 保存bin-log日志,(属于增量备份)用命令导出sql脚本,百度下很多教程的。保存成一个.sql文件最好
下次直接运行这个sql文件就行了
mysql数据库怎么备份数据库
命令行的方式较为快捷,只需要在命令行中使用命令即可,默认情况下该命令在mysql的bin目录中(前提需要将bin目录添加到path中),然后打开命令行,切换到某个盘符下,输入“ –u root –p 数据库名>备份文件名.sql”,单击回车,输入密码后,即可备份相应的数据库,这种备份是没有建库的语句的定期的备份可使我们数据库崩溃造成的损失大大降低。在mysql中进行数据备份的方法有两种,一种是使用程序,一种是使用、cp、tar或cpio等打包程序直接拷贝数据库文件。程序备份数据库较慢,但它生成的文本文件便于移植。使用等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。
使用备份数据库其实就是把数据库转储成一系列 table和语句,通过这些语句我们就可重新生成数据库。使用的方法如下:
% --opt | gzip > /data//.bak
#--opt选项会对转储过程进行优化,生成的备份文件会小一点,后的管道操作会进行数据压缩
% --opt , | gzip > /data//.bak
#可在数据库后接数据表名,只导出指定的数据表,多个数据表可用逗号分隔
--opt选项还可激活--add-drop-table选项,它将会在备份文件的每条 table前加上一条drop table if 语句。这可方便进行数据表的更新,而不会发生“数据表已存在”的错误。
用命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。
% -h
% --opt | mysql -h
另外还可通过ssh远程调用服务器上的程序,如:
% ssh
% --opt | ssh mysql
通过直接拷贝系统文件的方式备份数据库,在备份时,要确保没有人对数据库进行修改操作。要做到这点,最好关闭服务器。如果不能关闭的,要以只读方试锁定有关数据表。下面是一些示例:
% cp -r db //db#备份db数据库到//db目录
% cp .* //db#只备份数据表
% scp -r db :/usr/local/mysql/data#用scp把数据库直接拷贝到远程服务器
在把数据库直接拷贝到远程主机时,应注意两台机器必须有同样的硬件结构,或者将拷贝的数据表全部是可移植数据表类型。
使用工具,它是一个perl dbi脚本,可在不关闭服务器的情况下备份数据库,它主要的优点是:
它直接拷贝文件,所以它比快。
可自动完成数据锁定工作,备份时不用关闭服务器。
能刷新日志,使备份文件和日志文件的检查点能保持同步。
下面是该工具的使用示例:
% db//#把db数据库备份到/db目录里,会自动创建一个db目录
使用 table语句进行备份,该语句最早出现在mysql 3.23.25版本中,仅适用于数据表。用法如下:
mysql> table to '//db';#把数据表备份到//db目录下
为了执行该语句,你必须拥有那些表的file权限和权限,备份目录还必须是服务器可写的。该语句执行时,会先把内存中的数据写入磁盘,再把各个数据表的.frm(表结构定义文件)、.myd(数据)文件从数据目录拷贝到备份目录。它不拷贝.myi(索引)文件,因为它能用另外两个文件重建。 table语句备份时,依次锁定数据表,当同时备份多个数据表时,数据表可能会被修改,所以备份0完成时,备份文件中的数据和现时数据表中的数据可能会有差异,为了消除该差异,我们可用只读方式锁定数据表,在备份完成后再解锁。如:
mysql> lock tb1 read,tb2 read;
mysql> table tb1,tb2 to '/db';
mysql> ;
使用 table语句备份的数据表可用 table重新加载到服务器。
和bdb数据库也可用和直接拷贝法进行备份。使用直接拷贝法时应注意需把组成和bdb数据库的所有文件都拷贝下来,如的.frm文件、日志文件和表空间配置文件;bdb的数据文件、日志文件等。
使用镜像机制进行备份,我们可用slave stop语句挂起从服务器的镜像,在从服务器上通过直接拷贝法或其它工具制作备份。备份完成,用slave start重新启动镜像,从服务器重新与主服务器同步,接收备份时主服务器所做的修改。
在mysql中没有为数据库重命名的命令,但我们可用转储数据库,再创建一个新的空数据库,把转储文件加载到该新数据库,这样就完成数据库重命名的工作。如:
% >db.sql#转储db数据库数据
% #新建一个空的数据库
% mysql < db.sql#把db数据库的数据加载到新的数据库中
% drop #删除旧的数据库
一个更简单的重命名数据库的方法是直接修改数据库目录名,但该方法不适用于和bdb数据库。注意,在更名后,需在权限表中更新相关数据表信息,需执行以下语句:
mysql> db set db='' where db='';
mysql> set db='' where db='';
mysql> set db='' where db='';
mysql> host set db='' where db='';