热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据库技术:MySql数据库备份的几种方式分享

mysqldump工具备份备份整个数据库$mysqldump-uroot-hhost-pdbnamebackdb.sql备份数据库中的某个表$mysqldump-uroot-

mysqldump工具备份

备份整个数据库

$>mysqldump-uroot-hhost-pdbname>backdb.sql

备份数据库中的某个表

$>mysqldump-uroot-hhost-pdbnametbname1,tbname2>backdb.sql

备份多个数据库

$>mysqldump-uroot-hhost-p--databasesdbname1,dbname2>backdb.sql

备份系统中所有数据库

$>mysqldump-uroot-hhost-p--all-databases>backdb.sql

直接复制整个数据库目录(对于InnoDB存储引擎不适用)备份

windowns:installpath/mysql/data

linux:/var/lib/mysql

在复制前需要先执行如下命令:

MYSQL>LOCKTABLES; #在复制过程中允许客户继续查询表, MYSQL>FLUSHTABLES; #将激活的索引页写入硬盘。

mysqlhotcopy工具备份

备份数据库或表最快的途径,只能运行在数据库目录所在的机器上,并且只能备份MyISAM类型的表。

要使用该备份方法必须可以访问备份的表文件。

$>mysqlhotcopy-uroot-pdbname/path/to/new_directory; #将数据库复制到new_directory目录。

mysql命令导入sql文件还原

$>mysql-uroot-p[dbname]sourcebackup.sql; #执行source命令前需要先选择数据库。

直接复制数据库目录还原

注:该方式必须确保原数据库和待还原的数据库主版本号一致,并且只适用于MyISAM引擎的表。

关闭mysql服务。 将备份的文件或目录覆盖mysql的data目录。 启动mysql服务。 对于linux系统,复制完文件后需要将文件的用户和组更改为mysql运行的用户和组。

mysqlhotcopy快速恢复

停止mysql服务,将备份数据库文件复制到存放数据的位置(mysql的data文件夹),重先启动mysql服务即可(可能需要指定数据库文件的所有者)。

$>cp-R/usr/backup/test/usr/local/mysql/data #如果恢复的数据库已经存在,则使用DROP语句删除已经存在的数据库之后,恢复才能成功,还需要保证数据库版本兼容。

相同版本数据库之间迁移

$>mysqldump-hwww.abc.com-uroot-ppassworddbname| $>mysqldump-hwww.bcd.com-uroot-ppassword #将服务器www.abc.com的数据库dbname迁移到服务器www.bcd.com的相同版本数据库上。

不同版本的mysql数据库之间的迁移

备份原数据库。

卸载原数据库。

安装新数据库。

在新数据库中还原备份的数据库数据。

数据库用户访问信息需要备份mysql数据库。

默认字符集问题,MySQL4.x中使用latin1作为默认字符集,mysql5.x使用utf8作为默认字符集。如果有中文数据需要对默认字符集进行更改。

不同数据库之间的迁移

MyODBC工具实现MySQL和SQLServer之间的迁移。

MySQLMigrationToolkit工具。

表的导出和导入

SELECT……INTOOUTFILE导出文本文件,该方法只能导出到数据库服务器上,并且导出文件不能已存在。

MYSQL>SELECT......INTOOUTFILEfilename[OPTIONS] MYSQL>SELECT*FROMtest.personINTOOUTFILE"C:person0.txt"; #将表person里的数据导入为文本文件person0.txt。

mysqldump文件导出文本文件(和INTOOUTFILE不一样的是该方法所有的选项不需要添加引号)

$>mysqldump-Tpath-uroot-pdbname[tables][OPTIONS] #-T参数表明导出文本文件。path导出数据的目录。 $>mysqldump-TC:testperson-uroot-p #将test表中的person表导出到文本文件。执行成功后test目录下会有两个文件,person.sql和person.txt

mysql命令导出文本文件

MYSQL>mysql-uroot-p--execute="SELECT*FROMperson;"test>C:person3.txt; #将test数据库中的person表数据导出到person3.txt文本文件中。--vartical参数可以将一行分为多行显示。 MYSQL>mysql-uroot-p--vartical--execute="SELECT*FROMperson;"test>C:person3.txt; #--html将表导出为html文件,--xml文件将表导出为xml文件

LOADDATAINFILE导入文本文件

MYSQL>LOADDATAINFILE'filename.txt'INTOTABLEtablename[OPTIONS][IGNOREnumberLINES]; #[IGNOREnumberLINES]表示忽略行数 MYSQL>LOADDATAINFILE'C:person0.txt'INTOTABLEtest.person;

mysqlimport导入文本文件

$>mysqlimport-uroot-pdbnamefilename.txt[OPSTONS] #导入的表名有文件名决定,导入数据之前表必须存在 $>mysqlimport-uroot-ptestC:backupperson.txt #将数据导入到test数据库的person表中。

使用mysqlbinlog恢复数据

$>mysqlbinlog[option]filename|mysql-uuser-ppassword #filename为二进制日志文件, $>mysqlbinlog--stop-date="2013-03-3015:27:47"D:MySQLlogbinlogbinlog.000008|mysql-uroot-ppassword #根据日志文件binlog.000008将数据恢复到2013-03-3015:27:47以前的操作。

启动二进制日志

log-bin=path/filename#日志文件存储目录和文件名 expire_log_days=10#日志自动删除时间 max_binlog_size=100M#日志文件最大大小

查看二进制日志

MYSQL>SHOWVARIABLESLIKE'log_%'; MYSQL>SHOWBINARYLOGS; $>mysqlbinlogfilename #filename为二进制日志文件名。

删除二进制日志

MYSQL>RESETMASTER;#删除所有二进制日志 MYSQL>PURGE{MASTER|BINARY}LOGSTO'log_name';#删除文件编号小于log_name编号的文件 MYSQL>PURGE{MASTER|BINARY}LOGSBEFORE'date';#删除指定日期以前的文件

暂时停止二进制日志(不需要重启mysql服务)

MYSQL>SETsql_log_bin={0|1}#暂停或启动二进制日志。 您可能感兴趣的文章:MySQL数据库备份与恢复方法PHP备份/还原MySQL数据库的代码批处理命令BAT备份MySQL数据库mysql数据库备份和还原方法集锦推荐php实现mysql数据库备份类MySQL数据库备份和还原的常用命令小结Linuxshell实现每天定时备份mysql数据库Window系统下自动备份MySql数据库方法MySQL数据库如何导入导出(备份还原)MYSQL主从数据库同步备份配置的方法一键备份MySQL数据库的批处理

标签: 数据库 数据

解决Navicat远程连接MySQL出现 10060 unknow error的方法

MySQL Explain使用详解

上述就是数据库技术:MySql数据库备份的几种方式分享的全部内容,如果对大家有所用处且需要了解更多关于mysql数据库学习教程,希望大家多多关注—编程笔记


推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • mysql主机地址是什么????下面的该怎么添??mysql主机地址是什么????下面的该怎么添??答:SQLyogEnterprise中,mysql的主机地址如果你是本机,就填写 ... [详细]
  • jsp数据库多行返回(excel返回多行数据)
    本文目录一览:1、数据库数据怎么返回到jsp页面上 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • phpgettext.dll的简单介绍
    本文目录一览:1、在php.ini中设置了extension=php_gettext.dl ... [详细]
author-avatar
13888102467波光_1984
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有