最近用到mysql的dump导库表,将该命令的使用方法记录下来:
mysqldump备份:
mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" --lock-all-tables > 路径
案例:
mysqldump -uroot -p1234 -hlocalhost db1 a -w "id in (select id from b)" --lock-all-tables > c:\aa.txt
mysqldump还原:
mysqldump -u用户名 -p密码 -h主机 数据库 < 路径
案例:
mysql -uroot -p1234 db1 < c:\aa.txt
mysqldump按条件导出:
mysqldump -u用户名 -p密码 -h主机 数据库 a --where "条件语句" --no-建表> 路径
mysqldump -uroot -p1234 dbname a --where "tag='88'" --no-create-info> c:\a.sql
mysqldump按导入:
mysqldump -u用户名 -p密码 -h主机 数据库 < 路径
案例:
mysql -uroot -p1234 db1 < c:\a.txt
mysqldump导出表:
mysqldump -u用户名 -p密码 -h主机 数据库 表
案例:
mysqldump -uroot -p sqlhk9 a --no-data
讲一下 mysqldump 的一些主要参数
--compatible=name
它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。
--complete-insert,-c
导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。
--default-character-set=charset
指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。
--disable-keys
告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。
--extended-insert = true|false
默认情况下,mysqldump 开启 --complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。
--hex-blob
使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。
--lock-all-tables,-x
在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。
--lock-tables
它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 选项。
--no-create-info,-t
只导出数据,而不添加 CREATE TABLE 语句。
--no-data,-d
不导出任何数据,只导出数据库表结构。
--opt
这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让 mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt 禁用。注意,如果运行 mysqldump 没有指定 --quick 或 --opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。
--quick,-q
该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。
--routines,-R
导出存储过程以及自定义函数。
--single-transaction
该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。
本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。
要想导出大表的话,应结合使用 --quick 选项。
--triggers
同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。
其他参数详情请参考手册,我通常使用以下 SQL 来备份 MyISAM 表:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr "
--default-character-set=utf8 --opt --extended-insert=false "
--triggers -R --hex-blob -x db_name > db_name.sql
使用以下 SQL 来备份 Innodb 表:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr "
--default-character-set=utf8 --opt --extended-insert=false "
--triggers -R --hex-blob --single-transaction db_name > db_name.sql
另外,如果想要实现在线备份,还可以使用 --master-data 参数来实现,如下:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr "
--default-character-set=utf8 --opt --master-data=1 "
--single-transaction --flush-logs db_name > db_name.sql
它只是在一开始的瞬间请求锁表,然后就刷新binlog了,而后在导出的文件中加入CHANGE MASTER 语句来指定当前备份的binlog位置,如果要把这个文件恢复到slave里去,就可以采用这种方法来做。
1.2 还原
用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。
直接用 mysql 客户端
例如:
/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql
用 SOURCE 语法 (实验不成功!!!)
其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:
SOURCE /tmp/db_name.sql;
这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件。
其它:
导出库energy_pf:
C:\>mysqldump -uroot -psunray200 energy_pf > energy_pf.20121226.sql
导出某张表:
C:\>mysqldump -h192.168.2.200 -uenergy_pf -penergy_pf -t energy_pf --table DAT_PRODUCE>energy_pf.produce.sql
导入:
C:\>mysql -h192.168.2.200 -uenergy_pf -penergy_pf energy_pf<energy_pf.produce.sql
命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名;
1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)
mysqldump -uroot -pdbpasswd -d dbname >db.sql;
2、导出數據库為dbname某张表(test)结构
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;
3、导出數據库為dbname所有表结构及表數據(不加-d)
mysqldump -uroot -pdbpasswd dbname >db.sql;
4、导出數據库為dbname某张表(test)结构及表數據(不加-d)
mysqldump -uroot -pdbpasswd dbname test>db.sql;
相关推荐
如何运行脚本: 在外壳中,运行“ easy_install paramiko” 转到脚本目录方法1: 使用以下命令运行脚本:“ python mysql-remote-dump.py” 填写表格方法2: 使用以下命令运行脚本:“ python mysql-remote-dump.py...
为了实现定期备份,我们可以将`mysql-dump`命令集成到任务调度中。在`app/Console/Kernel.php`的`schedule()`方法内,添加相应的调度任务,例如每天凌晨执行一次备份。这样,系统会自动执行数据库备份,无需人工干预...
dump命令用于备份文件系统 ,dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。 语法格式:dump [参数] 常用参数: -0123456789 备份的层级 -b 指定区块的大小,单位为KB ...
本教程将详细讲解如何使用WinDbg生成DUMP文件,并创建一个静态库来支持这个过程。 首先,我们需要理解DUMP文件。DUMP文件是操作系统或应用程序在出现异常时生成的一种故障转储文件,它包含了内存中的关键信息,如...
在Linux环境下,MySQL数据库的使用过程中,遇到故障或者异常情况时,我们可能需要利用coredump来分析程序崩溃的原因。coredump是系统记录进程崩溃时内存状态的文件,它可以帮助开发者定位问题所在。以下是对在Linux...
同时,svn admin dump也可以来恢复svn存储库,仅需使用svnadmin load命令将备份文件加载到新的svn存储库中。 svn admin dump备份的基本命令是:svnadmin dump /path/to/repository > /path/to/backupfile。其中,/...
WinDbg是一款强大的调试器,可以配合sos.dll扩展库对.NET应用进行深入分析。例如,通过`.load clr20/sos.dll`加载sos调试模块,然后使用`sos.dll`提供的命令如`!dumpheap -stat`来查看内存统计信息。确保sos.dll...
本文将详细讲解如何利用自封装的“生成DUMP文件的库”进行调试,以及与之相关的`windbg`工具。 首先,我们需要了解自封装的“生成DUMP文件的库”。这个库通常是由开发者根据特定需求编写的,它可以提供API或函数调...
在IT行业中,数据库管理是至关重要的,特别是在使用MySQL这样的流行关系型数据库管理系统时。`mysqldump`是一个强大的命令行工具,它允许用户备份、导出MySQL数据库的数据和结构。这个工具对于开发人员和系统管理员...
在给定的文件`db_dump 备份mysql数据库.sh`中,我们可以推测这是一个shell脚本,它可能包含了自动执行`mysqldump`命令的逻辑。shell脚本是Linux或Unix系统中的一种批处理程序,用于自动化一系列命令。例如,这个脚本...
安装完成后,可以通过以下命令启动MySQL服务: ```bash # 对于Ubuntu/Debian sudo systemctl start mysql # 对于CentOS/RHEL sudo systemctl start mysqld ``` 接下来,让我们详细了解`mysql`和`mysqldump`命令行...
1、可以自动备份; 2、显示备份数据库大小; 3、记录备份日志; 4、自动管理数据文件。
go run go-mysql-dump-to-gdrive --help 参数 -db="": 数据库名称 -db-host="localhost":MySql 转储主机的名称 -db-user="": 你的 MySql dump USER 的名字 -dump-all=false: 如果设置脚本转储所有 MySql 数据库 -...
### Oracle常用dump命令详解 #### 一、Memory Dumps **Memory Dumps** 主要用于获取Oracle内存区域的详细信息,这些信息对于诊断系统性能问题非常有用。下面将详细介绍几个常用的Memory Dump命令。 ##### 1\. ...
Linux 操作 MySQL 命令大全分享 本文档主要介绍了 Linux 操作系统下 MySQL 数据库的常用命令,涵盖了 MySQL 的启动、重启、关闭、连接、修改密码、增加新用户、数据库操作、数据的导入导出等方面。 一、MySQL 的...
"mysql5.7.27dump&binlog.zip" 这个压缩包显然包含了与MySQL数据库备份和日志处理相关的工具和文档。 1. **mysqldump**: 这是一个用于MySQL数据库备份的强大命令行工具。在MySQL 5.7.27中,mysqldump可以生成SQL...
PG导入导出命令详解
在Java编程中,调用MySQL命令来导入和导出数据库是一种常见的操作,这涉及到数据库管理、数据迁移或者备份恢复等场景。在这个过程中,Java通过JDBC(Java Database Connectivity)接口与MySQL进行交互,利用MySQL...
在实际项目中,开发者需要将 `mi Mysql Dump` 库引入到项目中,并根据其提供的 API 文档来编写代码,调用相应的函数或方法进行数据库的备份操作。此外,还需要考虑如何与其他系统组件(如日志、错误处理等)进行...