MySQL的mysqldump工具用法详解

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

代码如下:

shell> 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客户程序很容易就能把数据导入了:

代码如下:

shell> mysqladmin create target_db_name  
shell> mysql target_db_name < backup-file.sql

就是

代码如下:

shell> mysql 库名 < 文件名

几个常用用例:
1.导出整个数据库

代码如下:

mysqldump -u 用户名 -p 数据库名 > 导出的文件名   
 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

2.导出一个表
 

代码如下:

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构
 

代码如下:

mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
 -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库

  常用source 命令
  进入mysql数据库控制台,
  如

代码如下:

mysql -u root -p

mysql>use 数据库
  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

代码如下:

mysql>source d:wcnc_db.sql

mysql使用source命令导入数据库编码问题
mysql>use 数据库名称(与你的网站数据库名相同)

代码如下:

set names utf8;

(先确认编码 注意不是UTF-8)

代码如下:

source D:123.sql

(要导入的数据库名称)

(0)

相关推荐

  • 详谈mysqldump数据导出的问题

    1,使用mysqldump时报错(1064),这个是因为mysqldump版本太低与当前数据库版本不一致导致的. mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to us

  • mysqldump备份还原和mysqldump导入导出语句大全详解

    MYSQLdump参数详解 mysqldump备份: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" –lock-all-tables > 路径 mysqldump还原: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 < 路径 mysqldump按条件导出: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a –where "条件语句&

  • MYSQL命令行导入导出数据库详解

    Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql -u root -p   (输入同样后会让你输入MySQL的密码) 4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库 5,输入:mysql>use 目标数据库名 如我输入的命令行:mysql>use news; 6,导入文件:mysql>s

  • mysql数据库备份及恢复命令 mysqldump,source的用法

    还原一个数据库:mysql -h localhost -u root -p123456 www<c:\www.sql 备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:\www2008-2-26.sql //以下是在程序中进行测试 //$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile&qu

  • MySQL数据库导出与导入及常见错误解决

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p jluibmclub > d:\ jluibmclub .sql (输入

  • mysql导出指定数据或部份数据的方法

    这个时候mysqldump可能就不大好使了,使用下面的方法则可以解决这个问题. 方法一.insert和select结合使用 1.新建一个表,比如new-table,包含所要导出的字段的名称,比如a,b,c 2.使用insert into new-table (a,b,c) select a,b,c from old-table; 3.剩下的步骤就是导出这个新的表,然后进行文本的处理 方法二.使用MySQL的SELECT INTO OUTFILE 备份语句(推荐) 在下面的例子中,生成一个文件,各

  • mysql导入导出数据中文乱码解决方法小结

    linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 复制代码 代码如下: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 那么导入数据的时候也要使用-

  • Mysql导入导出工具Mysqldump和Source命令用法详解

    在PHP网站开发中,时常遇到Mysql数据库备份或数据库迁移工作,这时Mysql怎么导入导出数据库中的数据就非常关键,Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式(txt)的SQL文件,通过Mysql Source命令能够将SQL文件导入Mysql数据库中,下面通过Mysql导入导出SQL实例详解Mysqldump和Source命令的用法. M

  • mysqldump数据库备份参数详解

    mysqldump备份: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" –lock-all-tables > 路径 mysqldump还原: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 < 路径 mysqldump按条件导出: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a –where "条件语句" –no-建表&g

  • MySQL的mysqldump工具用法详解

    导出要用到MySQL的mysqldump工具,基本用法是: 复制代码 代码如下: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出.   通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表.   注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题.   my

  • MySQL之mysqldump的使用详解

    一.mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原. 二.备份命令 2.1 命令格式 mysqldump [选项] 数据库名 [表名] > 脚本名 或 mysqldump [选项] --数据库名 [选项 表名] > 脚本名 或 mysqldump [选项]

  • MYSQL中Truncate的用法详解

    本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作.TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似:但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少.下面介绍SQL中Truncate的用法 当你不再需要该表时, 用 drop:当你仍要保留该表,但要删除所有记录时, 用 truncate:当你要删除部分记录时(always with a WHE

  • PHP定时备份MySQL与mysqldump语法参数详解

    先来为大家介绍几个MySQL备份命令mysqldump常用操作实例: 1.mysqldump备份 只导出表结构 d:/PHP/xampp/mysql/bin/mysqldump -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns_test --no-data --default_character-set=utf8 > d:/Python/data/snsgou_sns_test_table.sql mysqldump只导出数据 d:/PHP/xampp/

  • MySQL游标概念与用法详解

    本文实例讲述了MySQL游标概念与用法.分享给大家供大家参考,具体如下: 1.游标的概念(Cursor) 一条sql,对应N条资源,取出资源的接口,就是游标,沿着游标,可以一次取出1行.如果开发过安卓的同学应该知道有一个Api是Cursor,也是读取SQLite数据库用的,和这个有点类似. 2.使用游标的步骤 (1)声明 使用declare进行声明 declare 游标名 cursor for select_statement (2)打开游标 使用open进行打开 open 游标名 (3)从游标

  • MySQL查询条件常见用法详解

    本文实例讲述了MySQL查询条件常见用法.分享给大家供大家参考,具体如下: 条件 使用where子句对表中的数据筛选,结果为true的行会出现在结果集中 语法如下: select * from 表名 where 条件; 例: select * from students where id=1; where后面支持多种运算符,进行条件的处理 比较运算符 逻辑运算符 模糊查询 范围查询 空判断 比较运算符 等于: = 大于: > 大于等于: >= 小于: < 小于等于: <= 不等于:

  • mysql存储过程原理与用法详解

    本文实例讲述了mysql存储过程原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是存储过程 存储过程的创建 存储过程的使用 查看存储过程 修改存储过程 删除存储过程 首发日期:2018-04-17 什么是存储过程: 存储过程存储了一系列sql语句 存储过程的需求场景:下边是一个经典的需求场景,很多Mysql的书都有: 存储过程存储了一系列sql语句,使得简化了操作,不要求重复执行一系列操作.只需要在需要的时候调用一下存储过程就行了. 一般来说,可以认为存储过程的功能与函数的功能类似

  • mysql update语句的用法详解

    首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count] 其次,多表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_n

  • mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既"时间触发器",与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程. 二.适用范围对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理. 例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表. 三.使用权限单独使用event调用SQL语句时,

  • 浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解

    SQL Serve的ISNULL函数: ISNULL(check_expression,replacement_value) 1.check_expression与replacement_value的数据类型必须一致. 2.如果check_expression为NULL,则返回replacement_value. 3.如果check_expression为NULL,则返回check_expression. Mysql的IFNULL函数: IFNULL(expr1,expr2) 如果expr1不是

随机推荐