我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

mysql备份数据(mysql全库备份)_1659人推荐

MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cdMySQL中到bin文件夹的目录如我输入的命令行:cdC:\ProgramFiles\MySQL\MySQLServer4.1\bin(或者直接将windows的环境变量path中添加该目录)2,导出数据库:mysqldump-u用户名-p数据库名>导出的文件名如我输入的命令行:mysqldump-uroot-pnews>news.sql(输入后会让你输入进入MySQL的密码)(如果导出单张表的话在数据库名后面输入表名即可)3、会看到文件news.sql自动生成到bin文件下命令行导入数据库:1,将要导入的.sql文件移至bin文件下,这样的路径比较方便2,同上面导出的第1步3,进入MySQL:mysql-u用户名-p如我输入的命令行:mysql-uroot-p(输入同样后会让你输入MySQL的密码)4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库5,输入:mysql>use目标数据库名如我输入的命令行:mysql>usenews;6,导入文件:mysql>source导入的文件名;如我输入的命令行:mysql>sourcenews.sql;附加数据库或者导入数据库sql本身有数据导入的操作。但如果要从一个备份的文件中导入数据,则要进行另外的操作。下面以一个例子进行说明。sql服务器上已有一个doe数据库,并且里面有大量的数据,现准备从另外一个备份文件a1.bak(不是doe数据库的备份文件)中导入另外的数据(即导入后在doe中增加一些数据表,表中已录有数据),并保持原doe的数据不变。1、首先,在“sql企业管理器”中新建一个临时数据库a1。 2、右击a1数据库,选择:所有任务->还原数据库。3、在“还原数据库”窗口中,选择:“从设备”。4、点击“选择设备”。5、点击“添加”。6、从文件名中选择要还原的数据库文件,如a1.bak。 7、点击“确定”,返回“还原数据库”窗口。8、点击“选项”卡,进入选项设置。9、钩选:“在现有数据库上强制还原”。10、修改“移到物理文件名”为:“c:\a1.ldf”、“c:\a1.mdf”。11、点确定,即可导入备份文件中的数据到临时数据库a1中。12、此时,你可以将数据从a1导入到另外一真正要导入的数据库中,如doe数据库。 (下面的数据导入操作为sql2000企业管理器的一般数据导入导出操作。)13、在“sql企业管理器”中选择“doe”数据库。14、右击doe数据库,选择:所有任务->导入数据。15、在“dts导入/导出向导”窗口的“选择数据源”中,数据源选择刚才建立并导入数据的临时数据库a1。点击下一步。16、在“选择目的”中,系统已经默认为doe数据库。 17、连续点击“下一步”,直到完成。经过上面的操作,你已经成功地将备份文件a1.bak中数据导入doe数据库中,并且doe数据库原有数据不变。此时,你可以删除临时数据库a1。 打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。点击保存,弹出个命名对话框,给这个任务取个名字,点击“确定”。点击“设置”计划任务。弹出的对话框,选择“计划”,再点击“新建”。 这里设置为从2014年1月24号起每天早上九点备份该数据库。如果你想提高备份频率、或者设置备份截止日期,请点击“高级”。高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次。加上前面的基本设置,任务计划就是:从2014年1月24号开始,每天九点,每隔2小时备份一次,每天的备份都持续24小时。最后,输入电脑密码就大功告成。定期的备份可使我们数据库崩溃造成的损失大大降低。 在mysql中进行数据备份的方法有两种,一种是使用mysqldump程序,一种是使用mysqlhotcopy、cp、tar或cpio等打包程序直接拷贝数据库文件。mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。使用mysqldump备份数据库其实就是把数据库转储成一系列createtable和insert语句,通过这些语句我们就可重新生成数据库。使用mysqldump的方法如下:%mysqldump--opttestdb|gzip>/data/backup/testdb.bak#--opt选项会对转储过程进行优化,生成的备份文件会小一点,后的管道操作会进行数据压缩%mysqldump--opttestdbmytable1,mytable2|gzip>/data/backup/testdb_mytable.bak#可在数据库后接数据表名,只导出指定的数据表,多个数据表可用逗号分隔--opt选项还可激活--add-drop-table选项,它将会在备份文件的每条createtable前加上一条droptableifexists语句。这可方便进行数据表的更新,而不会发生“数据表已存在”的错误。 用mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。%mysqladmin-hremote_hostcreatetestdb%mysqldump--opttestdb|mysql-hremote_hosttestdb另外还可通过ssh远程调用服务器上的程序,如:%sshremote_hostmysqladmincreatetestdb%mysqldump--opttestdb|sshremote_hostmysqltestdb通过直接拷贝系统文件的方式备份数据库,在备份时,要确保没有人对数据库进行修改操作。要做到这点,最好关闭服务器。如果不能关闭的,要以只读方试锁定有关数据表。下面是一些示例:%cp-rdb/backup/db#备份db数据库到/backup/db目录%cptable_name.*/backup/db#只备份table_name数据表%scp-rdbremotehot:/usr/local/mysql/data#用scp把数据库直接拷贝到远程服务器在把数据库直mysql全库备份接拷贝到远程主机时,应注意两台机器必须有同样的硬件结构,或者将拷贝的数据表全部是可移植数据表类型。 使用mysqlhotcopy工具,它是一个perldbi脚本,可在不关闭服务器的情况下备份数据库,它主要的优点是:它直接拷贝文件,所以它比mysqldump快。可自动完成数据锁定工作,备份时不用关闭服务器。能刷新日志,使备份文件和日志文件的检查点能保持同步。下面是该工具的使用示例:%mysqlhotcopydb/bakcup/#把db数据库备份到backup/db目录里,会自动创建一个db目录使用backuptable语句进行备份,该语句最早出现在mysql3.23.25版本中,仅适用于myisam数据表。用法如下:mysql>backuptablemytableto'/backup/db';#把mytable数据表备份到/backup/db目录下为了执行该语句,你必须拥有那些表的file权限和select权限,备份目录还必须是服务器可写的。该语句执行时,会先把内存中的数据写入磁盘,再把各个数据表的.frm(表结构定义文件)、.myd(数据)文件从数据目录拷贝到备份目录。 它不拷贝.myi(索引)文件,因为它能用另外两个文件重建。backuptable语句备份时,依次锁定数据表,当同时备份多个数据表时,数据表可能会被修改,所以备份0完成时,备份文件中的数据和现时数据表中的数据可能会有差异,为了消除该差异,我们可用只读方式锁定数据表,在备份完成后再解锁。如:mysql>locktablestb1read,tb2read;mysql>backuptabletb1,tb2to'backup/db';mysql>unlocktables;使用backuptable语句备份的数据表可用restoretable重新加载到服务器。innodb和bdb数据库也可用mysqldump和直接拷贝法进行备份。使用直接拷贝法时应注意需把组成innodb和bdb数据库的所有文件都拷贝下来,如innodb的.frm文件、日志文件和表空间配置文件;bdb的数据文件、日志文件等。 使用镜像机制进行备份,我们可用slavestop语句挂起从服务器的镜像,在从服务器上通过直接拷贝法或其它工具制作备份。备份完成,用slavestart重新启动镜像,从服务器重新与主服务器同步,接收备份时主服务器所做的修改。在mysql中没有为数据库重命名的命令,但我们可用mysqldump转储数据库,再创建一个新的空数据库,把转储文件加载到该新数据库,这样就完成数据库重命名的工作。 你也可以通过mysqldump进行全量备份:如mysqldump-uroot-p--all-database>data.sql,备份所有数据库,也可以备份指定数据库,备份时无需关闭数据库,如果数据库比较大的话建议结合binlog增量备份。 MySQL数据库的导入,有两种方法:1)先导出数据库SQL脚本,再导入;2)直接拷贝数据库目录和文件。在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。2.方法一SQL脚本形式操作步骤如下:2.1.导出SQL脚本在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump命令行,导出SQL脚本。 2.1.1用phpMyAdmin工具导出选项中,选择导出“结构”和“数据”,不要添加“DROPDATABASE”和“DROPTABLE”选项。选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。将导出的SQL文件保存下来。2.1.2用mysqldump命令行命令格式mysqldump-u用户名-p数据库名>数据库名.sql范例:mysqldump-uroot-pabc>abc.sql(导出数据库abc到abc.sql文件)提示输入密码时,输入该数据库用户名的密码。2.2.创建空的数据库通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。 2.3.将SQL脚本导入执行同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。2.3.1用phpMyAdmin工具从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。gzip使用方法:#gzipxxxxx.sql得到xxxxx.sql.gz文件。提示输入密码时,输入该数据库用户名的密码。 3直接拷贝如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。3.1准备原始文件用tar打包为一个文件3.2创建空数据库3.3解压在临时目录中解压,如:cd/tmptarzxfmydb.tar.gz3.4拷贝将解压后的数据库文件拷贝到相关目录cdmydb/cp*/var/lib/mysql/mydb/对于FreeBSD:cp*/var/db/mysql/mydb/3.5权限设置将拷贝过去的文件的属主改为mysql:mysql,权限改为660chownmysql:mysql/var/lib/mysql/mydb/*chmod660/var/lib/mysql/mydb/*。 MYSQL数据如何实时备份依次单击:开始--程序--MicrosoftSQLServer--企业管理器--SQLServer组--管理--数据库维护计划在右侧空白处右键单击,新建维护计划--勾选要备份的数据库--下一步指定数据库备份计划--调度--单击"更改"--设置备份的时间,备份周期--下一步每日频率即是每天什么时间开始进行备份发生频率即是执行的周期指定备份磁盘目录--修改"使用此目录"的路径作为备份数据库的存放路径.勾选删除早于此时间的文件,我这里选择一周,即是数据库备份文件把一周前的进行删除给此任务计划填写一个名字:back2单击"完成",就可以在数据库维护计划中看到刚才新建的计划.注意事项一定要开启sqlserveragent服务。目前mysql支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用sql语法进行备份:backuptable或者selectintooutfile,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。myisam表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。innodb所有的表都保存在同一个数据文件ibdata1中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份binlog,或者用mysqldump。

在线留言