只想知道 发表于 2015-1-16 22:35:28

MYSQL网页编程之最烦琐的备份MySql数据库办法

由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。mysql|备份|数据|数据库利用MYSQL举行数据库备份,又很正轨的数据库备份办法,同其他的数据库服务器有不异的观点,但有无想过,MySQL会有更简便的利用文件目次的备份办法,并且又快有好。

1、数据备份捷径
由于这个办法没有失掉官朴直式文档的考证,我们暂称为实验吧。

目标:备份hostA主机中一个mysql数据库TestA,并恢复到到hostB机中
实验情况:
操纵体系:WinNT4.0,Mysql3.22.34,phpMyAdmin2.1.0

在hostA中安装mysql数据库并创建TestA数据库
hostB机安装mysql数据库,没有TestA数据库


办法步骤:
启动phpMyAdmin观察HostA和HostB中的数据库列表,在HostB中没有TestA数据库
找到HostA中mysql的安装目次,并找到数据库目次data
在我的实验情况中,这个目次是
C:mysqldata
找到对应数据库称号的子目次
C:mysqldataTestA
粘贴拷贝到HostB的Data目次下,是HostA同HostBMysql数据目次下的文件不异

革新HostB的phpMyAdmin观察一下数据库列表,我们看到TestA已呈现,而且作查询修正等操纵都一般,备份恢复恢复乐成

实验结论:Mysql的数据库能够经由过程文件情势保留,备份,恢复只需将响应文件目次恢复便可,无需利用别的工具备份。

2、正轨的办法(官方倡议):

导出要用到MySQL的mysqldump工具,基础用法是:

mysqldumpdatabase

假如你不给定任何表,全部数据库将被导出。

经由过程实行mysqldump--help,你能失掉你mysqldump的版本撑持的选项表。

注重,假如你运转mysqldump没有--quick或--opt选项,mysqldump将在导出了局前装载全部了局集到内存中,假如你正在导出一个年夜的数据库,这将多是一个成绩。

mysqldump撑持以下选项:

--add-locks
在每一个表导出之前增添LOCKTABLES而且以后UNLOCKTABLE。(为了使得更快地拔出到MySQL)。
--add-drop-table
在每一个create语句之前增添一个droptable。
--allow-keywords
同意创立是关头词的列名字。这由在列名后面加表名的办法做到。
-c,--complete-insert
利用完全的insert语句(用列名字)。
-C,--compress
假如客户和服务器均撑持紧缩,紧缩二者间一切的信息。
--delayed
用INSERTDELAYED命令拔出行。
-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选择一同利用,而且有响应的LOADDATAINFILE子句不异的寄义。
LOADDATAINFILE语法。
-F,--flush-logs
在入手下手导出前,洗失落在MySQL服务器中的日记文件。
-f,--force,
即便我们在一个表导出时代失掉一个SQL毛病,持续。
-h,--host=..
从定名的主机上的MySQL服务器导出数据。缺省主机是localhost。
-l,--lock-tables.
为入手下手导出锁定一切表。
-t,--no-create-info
不写进表创立信息(CREATETABLE语句)
-d,--no-data
不写进表的任何行信息。假如你只想失掉一个表的布局的导出,这是很有效的!
--opt
同--quick--add-drop-table--add-locks--extended-insert--lock-tables。
应当给你为读进一个MySQL服务器的尽量最快的导出。
-pyour_pass,--password[=your_pass]
与服务器毗连时利用的口令。假如你不指定“=your_pass”部分,mysqldump必要来自终真个口令。
-Pport_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文件,它包括SQLCREATE命令,和一个table_name.txt文件,它包括数据。注重:这只要在mysqldump运转在mysqld保卫历程运转的统一台呆板上的时分才事情。.txt文件的格局依据--fields-xxx和--lines--xxx选项来定。
-uuser_name,--user=user_name
与服务器毗连时,MySQL利用的用户名。缺省值是你的Unix登录名。
-Ovar=option,--set-variablevar=option
设置一个变量的值。大概的变量被列鄙人面。
-v,--verbose
冗杂形式。打印出程序所做的更多的信息。
-V,--version
打印版本信息而且加入。
-w,--where=where-condition
只导出被选择了的纪录;注重引号是强迫的!
"--where=user=jimf""-wuserid>1""-wuserid<1"

最多见的mysqldump利用大概制造全部数据库的一个备份:

mysqldump--optdatabase>backup-file.sql

可是它对用来自于一个数据库的信息充分别的一个MySQL数据库也是有效的:

mysqldump--optdatabase|mysql--host=remote-host-Cdatabase

因为mysqldump导出的是完全的SQL语句,以是用mysql客户程序很简单就可以把数据导进了:

mysqladmincreatetarget_db_name
mysqltarget_db_name<backup-file.sql任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的数据库服务,它可以支持多变的需求。

变相怪杰 发表于 2015-1-19 17:54:23

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

柔情似水 发表于 2015-1-25 16:35:07

对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。

第二个灵魂 发表于 2015-2-3 10:43:42

另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);

乐观 发表于 2015-2-8 20:16:05

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

活着的死人 发表于 2015-2-26 03:47:07

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

老尸 发表于 2015-3-8 11:51:08

SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。

admin 发表于 2015-3-15 22:26:51

每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。

深爱那片海 发表于 2015-3-22 17:10:39

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
页: [1]
查看完整版本: MYSQL网页编程之最烦琐的备份MySql数据库办法