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

网上提供的最简便的MySql数据库备份的方法

网上提供的最简便的MySql数据库备份的方法
使用MYSQL进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好。
  
  一、数据备份捷径
  因为这个方法没有得到官方正式文档的验证,我们暂称为试验吧。
  
  目的:备份hostA主机中一个mysql数据库TestA,并恢复到到hostB机中
  
  试验环境:
  
  操作系统:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
  
  在hostA中安装mysql数据库并建立TestA数据库
  
  hostB机安装mysql数据库,没有TestA数据库
  
  方法步骤:
  
  启动phpMyAdmin察看HostA和HostB中的数据库列表,在HostB中没有TestA数据库
  
  找到HostA中mysql的安装目录,并找到数据库目录data
  
  在我的试验环境中,这个目录是
  
  C:mysqldata
  
  找到对应数据库名称的子目录
  
  C:mysqldataTestA
  
  粘贴拷贝到HostB的Data目录下,是HostA同HostB Mysql数据目录下的文件相同
  
  刷新HostB的phpMyAdmin察看一下数据库列表,我们看到TestA已经出现,并且作查询修改等操作都正常,备份恢复恢复成功
  
  试验结论:Mysql的数据库可以通过文件形式保存,备份,恢复只要将相应文件目录恢复即可,无需使用其它工具备份。
  
  二、正规的方法(官方建议):
  导出要用到MySQL的mysqldump工具,基本用法是:
  
  mysqldump [OPTIONS] database [tables]
  
  如果你不给定任何表,整个数据库将被导出。
  
  通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
  
  注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
  
  mysqldump支持下列选项:
  
  --add-locks
  
  在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
  
  --add-drop-table
  
  在每个create语句之前增加一个drop table。
  
  --allow-keywords
  
  允许创建是关键词的列名字。这由在列名前面加表名的方法做到。
  
  -c, --complete-insert
  
  使用完整的insert语句(用列名字)。
  
  -C, --compress
  
  如果客户和服务器均支持压缩,压缩两者间所有的信息。
  
  --delayed
  
  用INSERT DELAYED命令插入行。
  
  -e, --extended-insert
  
  使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
  
  -#, --debug[=option_string]
  
  跟踪程序的使用(为了调试)。
  
  --help
  
  显示一条帮助消息并且退出。
  
  --fields-terminated-by=...
  
  --fields-enclosed-by=...
  
  --fields-optionally-enclosed-by=...
  
  --fields-escaped-by=...
  
  --fields-terminated-by=...
  
  这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。
  
  LOAD DATA INFILE语法。
  
  -F, --flush-logs
  
  在开始导出前,洗掉在MySQL服务器中的日志文件。
  
  -f, --force,
  
  即使我们在一个表导出期间得到一个SQL错误,继续。
  
  -h, --host=..
  
  从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
  
  -l, --lock-tables.
  
  为开始导出锁定所有表。
  
  -t, --no-create-info
  
  不写入表创建信息(CREATE TABLE语句)
  
  -d, --no-data
  
  不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!
  
  --opt
  
  同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
  
  应该给你为读入一个MySQL服务器的尽可能最快的导出。
  
  -pyour_pass, --password[=your_pass]
  
  与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。
  
  -P port_num, --port=port_num
  
  与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)
  
  -q, --quick
  
  不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。
  
  -S /path/to/socket, --socket=/path/to/socket
  
  与localhost连接时(它是缺省主机)使用的套接字文件。
  
  -T, --tab=path-to-some-directory
  
  对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它包含数据。 注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据--fields-xxx和--lines--xxx选项来定。
  
  -u user_name, --user=user_name
  
  与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。
  
  -O var=option, --set-variable var=option
  
  设置一个变量的值。可能的变量被列在下面。
  
  -v, --verbose
  
  冗长模式。打印出程序所做的更多的信息。
  
  -V, --version
  
  打印版本信息并且退出。
  
  -w, --where='where-condition'
  
  只导出被选择了的记录;注意引号是强制的!
  
  "--where=user='jimf'" "-wuserid>1" "-wuserid<1"
  
  最常见的mysqldump使用可能制作整个数据库的一个备份:
  
  mysqldump --opt database > backup-file.sql
  
  但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:
  
  mysqldump --opt database   mysql --host=remote-host -C database
  
  由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:
  
  mysqladmin create target_db_name
  
  mysql target_db_name < backup-file.sql

推荐阅读
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 先看一段错误日志:###Errorqueryingdatabase.Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransie ... [详细]
author-avatar
郎嬅不绘画_875
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有