`
minzaipiao
  • 浏览: 148603 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

有关MYSQLDUMP的详细解释

阅读更多
[原创]有关MYSQLDUMP的详细解释( 2007-11-25日更新) http://blog.chinaunix.net/u/29134/showart_287899.html

早上朋友问这个问题,我就把这些选项详细整理一下,偶会随时更新的。
前提: 使用mysqldump的用户,必须至少具有SELECT 和 LOCK TABLES的权限。库或者表。

如果要使用--tab开关,还必须有FILE的权限

准备工作:

库以及表:

Table   Create Table                           
------  -----------------------------------------
pwss    CREATE TABLE `pwss` (                  
          `id` int(11) NOT NULL AUTO_INCREMENT,
          `username` varchar(64) DEFAULT NULL, 
          `description` mediumtext,            
          PRIMARY KEY (`id`)                   
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8   

mysql> grant usage on *.* to 'dump_user'@'localhost' identified by 'dump_user';
Query OK, 0 rows affected (0.00 sec)

(这个语句可以省略,因为默认的都有USAGE权限。)

mysql> grant lock tables on *.* to 'dump_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> show grants for 'dump_user'@'localhost';
+-------------------------------------------------------------------------------
-----------------------------------------+
| Grants for dump_user@localhost
                                         |
+-------------------------------------------------------------------------------
-----------------------------------------+
| GRANT LOCK TABLES ON *.* TO 'dump_user'@'localhost' IDENTIFIED BY PASSWORD '*9
E3A8684DFAF643FD3D08D24C0432C0101417D8B' |
+-------------------------------------------------------------------------------
-----------------------------------------+
1 row in set (0.00 sec)

如果您想把整个数据库woshitTest的内容导到一个文件中,可以使用下面的命令:

C:\>mysqldump -udump_user -pdump_user woshitTest > c:\\woshitTestDumpFile.txt(默认的是当前路径,其他的请用完整路径)
  

这条命令行也可以加上以下开关:

--databases (--all-databases)

如果只是想单独把表 pwSS 导出:
C:\>mysqldump -udump_user -pdump_user woshitTest pwss> c:\\woshitTestDumpFilePwss.txt

如果你想要导出某一条记录的话,带上开关--where="你的SQL语句"

--where="id=1" 或者 -w="id=1"

MYSQLDUMP 还有其他的开关列表如下:

  --add-drop-table

这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证IMPORT您的MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除

  --add-locks(这个开关我个人不推荐)

这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作

实例:

LOCK TABLES `pwss` WRITE;
/*!40000 ALTER TABLE `pwss` DISABLE KEYS */;
INSERT INTO `pwss` VALUES (1,'weiwei','I love this girl');
/*!40000 ALTER TABLE `pwss` ENABLE KEYS */;
UNLOCK TABLES;
  
  -c or - complete_insert

这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。

实例:

INSERT INTO `pwss` (`id`, `username`, `description`) VALUES (1,'weiwei','I love this girl');

  --delayed-insert
在INSERT命令中加入DELAY选项

  -F or -flush-logs
在执行导出之前将会刷新MySQL服务器的log.

  -f or -force
即使有错误发生,仍然继续导出

  -l or --lock-tables
导出表的时候服务器将会给表加锁。(同上:--add-locks)

  -t or --no-create- info

这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。
  
  -d or --no-data
这个选项使的mysqldump命令不创建INSERT语句。

在您只需要DDL语句时,可以使用这个选项。

  --opt
此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。(个人推荐。

如果没有使用--opt,MYSQLDUMP就会把整个结果集装载到内存中,然后导出。如果数据非常大就会导致导出失败。这个开关在默认情况下是启用的,如果不想启用它:--skip-opt来关闭它。)

  -q or -quick
这个选项使得MySQL不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。这个和上面的开关一个意思。

  --tab = path
这个选项将会创建两个文件,一个文件包含DDL语句或者表创建语句,另一个文件包含数据。DDL文件被命名为tableName.sql,数据文件被命名为tableName.txt.路径名是存放这两个文件的目录。目录必须已经存在,并且命令的使用者有对文件的特权。

(tableName.txt的结果相当于用select * from tablename into outfile的生成数据)
  
   --allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。


   -C, --compress 
如果客户和服务器均支持压缩,压
缩两者间所有的信息。

   -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子句相同的含义。

  -pyour_pass, --password[=your_pass] 
与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。

   -P port_num, --port=port_num 
与一台主机连接时使用的TCP/IP端口号。(任何系统通用)

   -S /path/to/socket, --socket=/path/to/socket 
与localhost连接时(它是缺省主机)使用的套接字文件。 (用于linux系统)

   -u user_name, --user=userName 
与服务器连接时,MySQL使用的用户名。 (LINUX系统缺省的who am i 的结果)

    -O var=option, --set-variable var=option

设置一个变量的值。可能的变量被列在下面。 
   -v, --verbose 
冗长模式。打印出程序所做的更多的信息。(也就是详细信息)

-B 开关可以生成CREATE DATABASE语句:

C:\>mysqldump -udump_user -pdump_user -B woshitTest --add-drop-table -c> c:\\1.txt

--tables

这个很有用的一个开关。

用于跳过--databases或者-B开关。该开关后面的所有名字均被认为是表名。

实例:

C:\>mysqldump -udump_user -pdump_user -B woshitTest --tables pwss --add-drop-table -c -R
>> c:\\1.txt


-R

如果要导出存储过程,加 -R开关即可。

实例:

C:\>mysqldump -udump_user -pdump_user woshitTest pwss --add-drop-table -c --tab="c:\\" -
v
-- Connecting to localhost...
-- Retrieving table structure for table pwss...
-- Sending SELECT query...
-- Disconnecting from localhost...


   -V, --version 
打印版本信息并且退出。

这里只谈了备份,不过恢复是最最主要的:

mysql -udump_user -pdump_user woshittest< 1.txt
分享到:
评论

相关推荐

    mysqldump命令导入导出数据库方法与实例汇总

    以下是对`mysqldump`命令的详细解释和实例: 1. **导出所有库**: 使用`--all-databases`选项可以导出所有数据库。例如: ``` mysqldump -uusername -ppassword --all-databases &gt; all.sql ``` 这会创建一个名...

    使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)

    以下是对这些知识点的详细解释: 1. **mysqldump基本用法**: - 最基础的命令格式是:`mysqldump -u [username] -p[password] [database_name] &gt; [dump_file]`。这将备份指定数据库到一个文件中,包含了数据库的...

    用mysqldump备份和恢复指定表的方法

    本篇文章将详细解释如何使用`mysqldump`工具进行指定表的备份和恢复,以及相关的一些最佳实践。 首先,`mysqldump`是MySQL提供的一款用于数据导出和备份的命令行工具,它可以生成SQL语句,这些语句可以用于创建...

    如何用mysqldump进行全量和时间点备份

    本文将详细介绍如何使用mysqldump进行全量备份以及时间点备份。 全量备份是指获取数据库在特定时刻的所有数据,包括结构、表、索引以及数据本身。这种备份方式是最基础的备份形式,适用于初次备份或者系统初始化时...

    mysqldump数据库备份参数详解

    下面是对一些关键参数的详细解释: 1. **--add-drop-table**:在每个表的 INSERT 语句前添加 `DROP TABLE IF EXISTS`,确保在导入时如果表已存在,会先删除再重建。 2. **--add-locks**:在每个表的 INSERT 语句...

    MySQL使用mysqldump+binlog完整恢复被删除的数据库原理解析

    以下是对这一恢复策略的详细解释: 首先,我们需要理解【概述】中的关键点。在数据库运维中,误操作可能导致数据丢失,包括DML(数据操纵语言)操作如delete和update,以及DDL(数据定义语言)操作如drop table和...

    MySQL错误代码以及出错信息对照大全

    下面是 MySQL 错误代码的详细解释: 0101-0105:进程和线程相关错误 * 0101:属于其他进程的专用标志 * 0102:标志已经设置,无法关闭 * 0103:无法再次设置该标志 * 0104:中断时无法请求专用标志 * 0105:此标志...

    MySQL的mysqldump工具用法详解

    以下是对mysqldump工具用法的详细解释: 1. **基本用法**: 基本的命令格式是 `mysqldump [OPTIONS] database [tables]`。如果你不指定特定的表,mysqldump会导出整个数据库。例如,要导出名为`mydb`的数据库,你...

    mysql5.7最优配置文件模板.docx

    在主从配置中,文章详细解释了 mysqldump 命令的选项和参数,包括 opt、master-data、single-transaction、flush-logs、extended-insert 等,帮助读者更好地理解 mysqldump 命令的使用方法。 此外,文章还介绍了从...

    2021-2022计算机二级等级考试试题及答案No.18607.docx

    - **详细解释**:备份数据库的方式有很多种,包括使用图形界面工具如phpMyAdmin、mysqldump程序等。其中,`SELECT INTO...OUTFILE` 语句主要用于导出查询结果到文件,并不适合完整备份表结构和数据。相比之下,直接...

    用SELECT… INTO OUTFILE语句导出MySQL数据的教程

    以下是关于使用SELECT… INTO OUTFILE导出MySQL数据的详细解释: 1. **基本语法**: SELECT… INTO OUTFILE语句的基本形式是: ```sql SELECT column1, column2, ... INTO OUTFILE 'filename' [FIELDS ...

    MySQL面试时,以下是更详细的技术要点、面试问题示例和资源推荐.pdf

    candidates 需要能够解释不同的备份策略,如逻辑备份和物理备份,并知道如何使用 mysqldump、MySQL Enterprise Backup 等工具来实现备份和恢复。 6. 安全性和权限管理:能够创建和管理 MySQL 用户,分配权限,了解...

    mysql5.7.27dump&binlog.zip

    4. **使用说明.txt**: 这个文件很可能是对如何使用mysqldump和mysqlbinlog的详细指导,包括如何进行数据库备份、如何解析和应用binlog等操作。通常,它会涵盖命令行选项、最佳实践以及可能遇到的问题和解决方案。 5...

    Mysql数据库导入命令Source详解.pdf

    下面将详细解释`source`命令的使用以及相关的`mysqldump`命令。 首先,`source`命令常用于导入数据库或者数据表,其基本语法是在MySQL客户端中输入`source &lt;file_path&gt;`,这里的`&lt;file_path&gt;`是包含SQL语句的脚本...

    解决MySQL中文乱码以及版本不一致问题.pdf

    本文将详细解释如何解决这两个问题。 首先,解决中文乱码问题通常涉及到字符集的设置。在MySQL中,字符集决定了数据的编码方式,不同的字符集对不同语言的支持程度不同。对于中文,通常推荐使用UTF-8字符集,因为它...

    实验13-数据库备份与恢复.pdf

    以下是对实验内容的详细解释: 实验环境包括Windows 11操作系统和MySQL 8.0社区版(Community Edition)数据库管理系统。实验的主要目标是学习和实践数据库的备份和恢复策略。 首先,实验13.1涉及对教学管理系统中...

    mysql备份导出.docx

    以下是对这些方法的详细解释: 1. **WinRAR备份**: 这种方法涉及到创建批处理文件,停止MySQL服务,然后使用WinRAR来压缩`data`目录。批处理命令可能如下: ```batch net stop mysql xcopy "C:/Program Files/...

    MYSQL常用命令

    ### MySQL常用命令详解 #### 一、备份与恢复 在MySQL数据库管理中,备份与恢复是非常重要的环节。正确的备份策略可以确保...以上就是关于MySQL常用命令的一些详细介绍,希望可以帮助您更好地理解和使用MySQL数据库。

    运行cmd状态下MySQL导入导出.sql文件.pdf

    以下是详细的知识点解释: 1. **设置MySQL命令行模式**: - 在Windows系统中,我们需要将MySQL的`bin`目录添加到系统的`PATH`环境变量中。这样,我们可以在任何地方通过命令行调用MySQL的相关工具,如`mysqldump`...

Global site tag (gtag.js) - Google Analytics