search
HomeDatabaseMysql Tutorialmysql 5.5 mysqldump 原文翻译_MySQL

mysqldump

bitsCN.com 根据mysql 5.5第6.4章节理解和自己翻译水平有限如有纰漏请指教,原文如下.http://dev.mysql.com/doc/refman/5.5/en/using-mysqldump.html 6.4 使用mysqldump备份(Using mysqldump for Backups)首先多余的不用说了备份用来干什么大家都清楚。mysqldump备份分两种输出形式:1. 无--tab选项,输出标准的SQL格式。输出包含CREATE语句(databases,tables,stored routines,and so forth),INSERT语句插入数据到表。输出可以保存成一个文件,之后可以用mysql再次创建。选项可以控制输出SQL语句格式,文件类型。2. 含--tab选项,每个表对应两个备份文件。一个文件为由tab分割的文本,一行对应一条数据记录,在目录中这个文件输出名为tb1_name.txt。同样会创建一个含有CREATE TABLE语句,名为tb1_name.sql的文件。 6.4.1 使用mysqldump备份SQL数据(Dumping Data in SQL Format with mysqldump)默认语法
shell>mysqldump [arguments] > file_name
 备份所有数据库
shell>mysqldump --all-databases > dump.sql
如果你数据库有密码上面那样当然是不行的加上用用户密码选项
shell>mysqldump -uroot -p --all-databases > dump.sql
 选择性的备份数据库
shell>mysqldump --databases db1 db2 db3 > dump.sql
 --databases选项会把后面几个名称作为数据库名。没有这个选项mysqldump会把第一个当成数据库名,后面的当成表名。 --all-databases或--databases,mysqldump会为每一个数据库写入CREATE DATABASE和USE。以确保当备份文件被再次载入的时候,如果数据库不存在则创建数据库,然后设置为当前数据库(USE DATABASES),当INSERT的时候数据库的内容均会加载到同一个数据库中。 如果想要备份文件载入时强制删除数据库,可以使用--add-drop-database。这样mysqldump会在CREATE DATABASE前写入DROP DATABASE。 备份单个数据库
shell>mysqldump --databases test > dump.sql
在单个数据库时可以这样简写
shell>mysqldump test > dump.sql

省略--databases时备份文件没有CREATE DATABASE,USE。有下面几方面含义。1.当你导入备份文件时,你必须选择一个默认数据库名这样程序才知道要导入到哪个数据库。2.当导入到时候你可以选择一个不同的数据库名。3.如果要导入到数据库不存在,你必须提前创建。4.因为输出文件没有CREATE DATABASE,所以--add-drop-database选项没有效果,如果你使用也没有DROP DATABASE。 选择表备份,表名跟在数据库名之后
shell>mysqldump test t1 t3 t7 > dump.sql
 6.4.2 导入SQL备份文件(Reloading SQL-Format Backups)导入由mysqldump备份的文件,如果使用了--all-databases或--databases选项,包含CREATE DATABASE和USE。且不需要导入到不同的数据库中,可以这样写。
shell>mysql  另外在mysql内部你可以这样写<pre class="brush:php;toolbar:false">mysql>source dump.sql;
 如果是简写单个数据库导出没有CREATE DATABASE和USE,如果需要则先创建数据库。
shell>mysqladmin create db1
接着选择具体的数据库
shell>mysql db1  另外在mysql内部创建数据库,选择数据库,导入备份:<pre class="brush:php;toolbar:false">mysql>CREATE DATABASE IF NOT EXISTS db1;<br>mysql>USE db1;<br>mysql>source dump.sql
 6.4.3 使用mysqldump以分割文本方式备份(Dumping Data in Delimited-Text Format with mysqldump)mysqldump备份时使用--tab=dir_name,使用dir_name作为备份文件输出目录,每一个表对应两个文件,文件名为表名。例如表名为t1,文件名则为t1.sql和t1.txt。.sql文件含表的CREATE TABLE语句。.txt文件含表的数据,一行对应一条数据记录。例如备份数据库db1到/tmp目录
shell>mysqldump --tab=/tmp db1
 .txt文件被服务器创建其中包含表数据,为系统用户所有。当程序运行SELECT ... INTO OUTFILE写入文件时你必须拥有相应权限,.txt存在时会发生错误。 服务器发送创建CREATE备份表命令给mysqldump写入.sql,因此文件是mysqldump所有。 --tab最好的用法是本地备份。如果你用来备份远程服务器,--tab的目录必须本地和远程服务器都存在,.txt文件将会写入到远程服务器(on the server host)目录中,.sql文件将会写入到本地目录中(on the client host)。 对于mysql --tab,默认情况下服务器将表数据写入.txt一行一条记录两个值之间tab分割,没有引号,新的一行在行的末尾。(这些都为相同的默认值SELECT ... INTO OUTFILE) 通过选项输出不同的格式,mysqldump支持如下:--fields-terminated-by=str字段值之间的分隔符默认为tab --fields-enclosed-by=char字段值两边的分隔符默认为空(PS这个翻译过来真不知道说的对不对.效果可以参考INSERT INTO中如果VALUE是字符型就要加上双引号中的双引号) --fields-optionally-enclosed-by=char这个效果同上但只有字符型的字段值才会加默认值为空 --fields-escaped-by=char转义特殊字符的字符默认值无 --lines-terminated-by=str记录之间的分隔符默认值是换行 根据这些选项你可以指定任何值,可能需要在命令行中对值进行适当的引用或转义。另外可以使用16进制表示值,假设想要mysqldump输出的值引用双引号。可以添加 --fields-enclosed-by 选项指定值为双引号。但是这个值往往是特殊的转义字符需要处理一下。例如在unix上可以这样使用双引号:--fields-enclosed-by='"'在其他的平台可以使用16进制表示:--fields-enclosed-by=0x22 这是几个选项的同时使用的例子,记录以逗号分隔多条记录之间用换行/回车:
shell> mysqldump --tab=/tmp --fields-terminated-by=, --fields-enclosed-by='"' --lines-terminated-by=0x0d0adb1
(windows平台--fields-enclosed-by要等于0x22。换行符也没有出来变成了乱码,这个可能也需要改)当设置了数据输出格式,在导入备份数据的时候同样也要设置相同的格式,以保证内容正确导入。 6.4.4 导入以分割文本方式的备份(Reloading Delimited-Text Format Backups)使用mysqldump --tab文件备份,每一个表都被存储成包含CREATE TABLE语句的.sql文件和保护表数据的.txt文件。导入表之前先定位到备份文件的目录。这样.sql文件先创建空的表,然后.txt文件导入数据:
1 shell> mysql db1 2 shell> mysqlimport db1 t1.txt
 另外在mysql端导入需要使用LOAD DATA INFILE:
1 mysql> USE db1;<br>2 mysql> LOAD DATA INFILE 't1.txt' INTO TABLE t1;
(PS:范例中t1.txt的路径为当前选中数据库的路径,可以修改为绝对路径'C:/t1.txt') 如果在备份文件时使用了控制数据格式的选项,在使用mysqlimport或LOAD DATA INFILE导入时也需设置相同的选项:
1 shell>mysqlimport --fields-terminated-by=, --fields-enclosed-by='"' --lines-terminated-by=0x0d0a db1 t1.txt
1 mysql>USE db1;<br>2 mysql>LOAD DATA INFILE 't1.txt' INTO TABLE t1<br>3     ->FIELDS TERMINATED BY ',' FIELDS ENCLOSED BY '"'<br>4     ->LINES TERMINATED BY '/r/n';
 6.4.5 mysqldump技巧(mysqldump Tips)这一章解决些常见问题所需的技术如何创建备份数据库如何从一个服务器将数据库拷贝到另一个服务器如何备份一个存储程序(存储过程函数,触发器,日志)如何备份数据和创建分离 6.4.5.1 创建数据库备份文件(Making a Copy of a Database)
1 shell> mysqldump db1 > dump.sql<br>2 shell> mysqladmin create db2<br>3 shell> mysql db2 在使用db1备份文件覆盖db2时不要使用--databases选项因为那样会在备份文件中写入USE db1. <strong>6.4.5.2 从一个服务器复制数据库到另一个服务器(Copy a Database from one Server to Another)</strong>服务器1:<pre class="brush:php;toolbar:false">1 shell>mysqldump --databases db1 > dump.sql
将备份文件复制到服务器2 服务器2:
1 shell>mysql  使用mysqldump时添加--database选项备份文件会包含CREATE DATABASE和USE语句,如果不存在则会创建同时设为默认数据库在导入数据。 你可以忽略--database选项,但在导入数据库的时候需要创建一个数据库(如果需要)然后设置为当前数据库。 服务器1:<pre class="brush:php;toolbar:false">1 shell>mysqldump db1 > dump.sql
服务器2:
1 shell> mysqladmin create db1<br>2 shell> mysql db1 所以忽略--database选项就可以选择不同的数据库导入。 <strong>6.4.5.3 备份存储程序(Dumping Stored Programs)</strong>以下是存储程序几个可选选项(存储过程函数,触发器,日志)--events:调度事件--routines:存储过程和函数--triggers:触发器 triggers默认是备份的routines,events需要选择性备份默认是不备份的可以选择跳过--skip-events, --skip-routines, --skip-triggers。 <strong>6.4.5.4 备份表定义和内容分开(Dumping Table Definitions and Content Separately)</strong>--no-data选项告诉mysqldump不备份表数据,备份文件仅包括创建表。相对的--no-create-info选项告诉mysqldump备份仅包含数据。示例:<pre class="brush:php;toolbar:false">1 shell> mysqldump --no-data test > dump-defs.sql<br>2 shell> mysqldump --no-create-info test > dump-data.sql
 一个只备份CREATE存储和事件的例子:
shell> mysqldump --no-data --routines --event stest > dump-defs.sql
 6.4.5.5 用备份来测试mysql升级后兼容的问题(Using mysqldump to test for Upgrade Incompatibilities)当考虑mysql升级时需要谨慎的考虑安装新的版本,独立于现有的版本。这时可以备份现有数据库导入到新的版本中。(这是一个测试新版本经常使用的方法)在现有服务器:
shell> mysqldump --all-databases --no-data --routines --events > dump-defs.sql
 在新服务器:
shell> mysql  因为备份文件没有表数据库,所以可以处理的很快。这可以发现潜在的不兼容,而不需要长时间的数据加载操作。查看备份文件处理时发生的警告或错误。在验证了没有兼容性问题后备份表数据导入到新服务器在现有服务器:<pre class="brush:php;toolbar:false">shell> mysqldump --all-databases --no-create-info > dump-data.sql
 在新服务器:
shell> mysql 现在检查表内容运行一些测试查询bitsCN.com
    
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
搜狗浏览器怎么翻译搜狗浏览器怎么翻译Feb 01, 2024 am 11:09 AM

搜狗浏览器怎么翻译?我们平时用搜狗浏览器查阅资料的时候,会遇到一些全是英文的网站,因为看不懂英语对网站浏览起来就很困难,这样也十分的不方便,遇到这种情况没有关系!搜狗浏览器有内置翻译按钮,只要点击一下,搜狗浏览器就会自动帮你翻译整个网页?如果你不会操作的话,小编整理搜狗浏览器怎么翻译的具体方法步骤,不会的话跟着我往下看吧!搜狗浏览器怎么翻译1、打开搜狗浏览器,单击右上角的译字图标2、选择翻译文字类型,然后输入需要翻译的文字3、搜狗浏览器就会自动翻译文字,至此操作完成以上搜狗浏览器怎么翻译的全部内

基于JavaScript构建实时翻译工具基于JavaScript构建实时翻译工具Aug 09, 2023 pm 07:22 PM

基于JavaScript构建实时翻译工具引言随着全球化的需求日益增长,跨国交流和交流的频繁发生,实时翻译工具成为了一种非常重要的应用。我们可以利用JavaScript和一些现有的API来构建一个简单但实用的实时翻译工具。本文将会介绍如何基于JavaScript来实现这个功能,并附有代码示例。实施步骤步骤1:创建HTML结构首先,我们需要创建一个简单的HTML

如何解决搜狗浏览器无法翻译网页的问题如何解决搜狗浏览器无法翻译网页的问题Jan 29, 2024 pm 09:18 PM

搜狗浏览器无法翻译此网页怎么办?搜狗浏览器是一款非常好用的多功能浏览器,其中的网页翻译功能非常强大,能够帮助我们解决学习工作中的大多数麻烦。不过有些小伙伴却反应搜狗浏览器有着无法翻译此网页的问题,这可能是因为操作不当造成的,只需要正确的操作翻译功能就能解决,下面就由小编为大家带来搜狗浏览器无法翻译此网页解决方法。搜狗浏览器无法翻译此网页解决方法方法一:1、下载并安装搜狗浏览器2、打开搜狗浏览器3、任意打开一个英文网站4、网站打开后,单击右上角的译字图标5、选择翻译文字类型,然后单击翻译当前网页6

iOS 17.2:如何使用 iPhone 的操作按钮翻译语音iOS 17.2:如何使用 iPhone 的操作按钮翻译语音Dec 15, 2023 pm 11:21 PM

在iOS17.2中,使用iPhone操作按钮的新自定义翻译选项克服沟通障碍。继续阅读以了解如何使用它。如果您的iPhone带有操作按钮,例如iPhone15Pro,Apple的iOS17.2软件更新为该按钮带来了新的翻译选项,可让您将实时对话翻译成多种语言。根据苹果公司的说法,翻译不仅准确,而且具有上下文感知能力,确保有效地捕捉细微差别和口语。该功能对于旅行者、学生和任何学习语言的人来说都应该是一个福音。在使用翻译功能之前,请务必选择要翻译的语言。您可以通过Apple内置的翻译应用程序执行此操作

Java百度翻译API实现中文与芬兰语互相翻译的技术突破Java百度翻译API实现中文与芬兰语互相翻译的技术突破Aug 05, 2023 am 08:25 AM

Java百度翻译API实现中文与芬兰语互相翻译的技术突破导语:随着全球化进程的不断加速,人们对语言翻译的需求也越来越大。在软件开发领域,实现多语言翻译也变得非常重要。本文将介绍如何使用Java编程语言以及百度翻译API实现中文与芬兰语之间的互相翻译,我们将展示如何通过此技术突破实现人工智能在多语言翻译方面的应用。准备工作:在正式开始实现之前,我们需要进行一些

如何使用PHP开发微信小程序的翻译功能?如何使用PHP开发微信小程序的翻译功能?Oct 26, 2023 am 09:00 AM

如何使用PHP开发微信小程序的翻译功能?随着互联网的发展,语言的交流和沟通变得越来越重要。微信小程序是当前最热门的应用之一,而且拥有全球庞大的用户群体。为了使小程序能够更好地适应多语种用户需求,开发者可以为其添加翻译功能。本文将介绍使用PHP开发微信小程序翻译功能的具体步骤,并提供代码示例。注册微信小程序开发者账号首先,您需要在微信开放平台注册一个开发者账号

谷歌浏览器内置的翻译功能如何使用?谷歌浏览器内置的翻译功能如何使用?Jan 29, 2024 pm 05:57 PM

谷歌浏览器自带翻译在哪里?谷歌浏览器怎么自动翻译成中文?相信非常多的用户都知道谷歌浏览器是可以把整个网页自动翻译为中文的吧,这样给用户带来了便捷节省了时间,很多人第一次使用这个功能都不了解,不知道要怎么去设置,不要着急,下面本站小编就为大家带来谷歌浏览器自带翻译功能介绍,快来看看吧。谷歌浏览器怎么自动翻译成中文1、打开谷歌浏览器,点击右上角的三点图标。2、然后找到【设置】打开。3、将页面下拉到最下面,点击展开【高级】。4、点击展开【语言】。5、点击【询问是否翻译非您所用语言的网页】这个选项后面的

python百度翻译API实现越南语翻译python百度翻译API实现越南语翻译Aug 08, 2023 pm 12:10 PM

Python百度翻译API实现越南语翻译引言:随着全球交流越来越紧密,语言翻译变得越来越重要。在计算机领域,有许多自动翻译工具可以帮助我们去理解和翻译不同的语言。百度翻译API是其中一种常用的自动翻译工具,它提供了丰富的语种支持。本文将介绍如何使用Python编程语言,结合百度翻译API实现越南语翻译。我们将通过获取百度翻译API的密钥,编写Python代码

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor