目录
一、mysqldump 备份操作
1.1 备份基础语法1.2 备份案例
二、mysqldump 还原操作
2.1 还原基础语法2.2 还原案例
三、mysqldump 按条件导出与导入
3.1 按条件导出3.1.1 按条件导出基础语法3.1.2 按条件导出案例3.2 按条件导入3.2.1 按条件导入基础语法3.2.2 按条件导入案例
四、mysqldump 表导出操作
4.1 表导出基础语法4.2 表导出案例(仅导出表结构,不含数据)
五、mysqldump 主要参数说明
5.1 --compatible=name 5.2 --complete-insert,-c 5.3 --default-character-set=charset 5.4 --disable-keys 5.5 --extended-insert = true|false 5.6 --hex-blob 5.7 --lock-all-tables,-x 5.8 --lock-tables 5.9 --no-create-info,-t 5.10 --no-data,-d 5.11 --opt 5.12 --quick,-q 5.13 --routines,-R 5.14 --single-transaction 5.15 --triggers 5.16 其他参数说明
六、mysqldump 常用备份命令示例
6.1 MyISAM 表备份命令6.2 InnoDB 表备份命令6.3 在线备份命令(含 binlog 信息)
6.3.1 在线备份语法6.3.2 在线备份特性
七、mysqldump 备份文件还原方法
7.1 方法一:直接用 mysql 客户端导入7.1.1 导入语法7.2 方法二:用 SOURCE 语法导入(实验不成功!!!)
7.2.1 语法说明7.2.2 注意事项总结
一、mysqldump 备份操作
1.1 备份基础语法mysqldump -u用户名 -p密码 -h主机 数据库 表名 -w "sql条件" --lock-all-tables > 备份路径1.2 备份案例mysqldump -uroot -p1234 -hlocalhost db1 a -w "id in (select id from b)" --lock-all-tables > c:\aa.txt
二、mysqldump 还原操作
2.1 还原基础语法mysql -u用户名 -p密码 -h主机 数据库 < 备份文件路径注:原文中“mysqldump还原”语法表述存在笔误,正确还原需使用mysql命令而非mysqldump2.2 还原案例mysql -uroot -p1234 db1 < c:\aa.txt
三、mysqldump 按条件导出与导入
3.1 按条件导出3.1.1 按条件导出基础语法mysqldump -u用户名 -p密码 -h主机 数据库 表名 --where "条件语句" --no-create-info > 导出路径注:原文中“–no-建表”为简化表述,标准参数为--no-create-info3.1.2 按条件导出案例mysqldump -uroot -p1234 dbname a --where "tag='88'" --no-create-info > c:\a.sql3.2 按条件导入3.2.1 按条件导入基础语法mysql -u用户名 -p密码 -h主机 数据库 < 导出文件路径注:原文中“mysqldump按导入”语法表述存在笔误,正确导入需使用mysql命令而非mysqldump3.2.2 按条件导入案例mysql -uroot -p1234 db1 < c:\a.txt
四、mysqldump 表导出操作
4.1 表导出基础语法mysqldump -u用户名 -p密码 -h主机 数据库 表名4.2 表导出案例(仅导出表结构,不含数据)
mysqldump -uroot -p sqlhk9 a --no-data
五、mysqldump 主要参数说明
5.1 --compatible=name功能:告知 mysqldump 导出的数据需兼容的数据库类型或旧版本 MySQL 服务器兼容值:ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等说明:多值用逗号分隔,仅保证“尽量兼容”,非“完全兼容”
5.2 --complete-insert,-c功能:导出数据采用包含字段名的完整 INSERT 语句(所有值写在一行)
优势:提高插入效率风险:可能受 max_allowed_packet 参数影响,导致插入失败,不推荐使用5.3 --default-character-set=charset功能:指定导出数据的字符集必要性:若数据表非默认 latin1 字符集,不指定此参数会导致再次导入后产生乱码5.4 --disable-keys功能:在 INSERT 语句开头添加/*!40000 ALTER TABLE table DISABLE KEYS */;,结尾添加/*!40000 ALTER TABLE table ENABLE KEYS */;优势:插入完所有数据后再重建索引,大幅提高插入速度限制:仅适用于 MyISAM 表5.5 --extended-insert = true|false默认值:true(开启 --complete-insert 模式)
功能:关闭 --complete-insert 模式时,需将此参数设为 false 5.6 --hex-blob功能:使用十六进制格式导出二进制字符串字段必要性:存在二进制数据时必须使用影响字段类型:BINARY、VARBINARY、BLOB 5.7 --lock-all-tables,-x功能:开始导出前,请求锁定所有数据库的所有表,保证数据一致性特性:属于全局读锁,会自动关闭 --single-transaction 和 --lock-tables 选项5.8 --lock-tables功能:锁定当前导出的数据表(区别于 --lock-all-tables 锁定全部库下的表)
限制:仅适用于 MyISAM 表;InnoDB 表需使用 --single-transaction 选项5.9 --no-create-info,-t功能:仅导出数据,不添加 CREATE TABLE 语句5.10 --no-data,-d功能:不导出任何数据,仅导出数据库表结构5.11 --opt本质:快捷选项,等同于同时添加以下参数:
–add-drop-tables、–add-locking、–create-option、–disable-keys、–extended-insert、–lock-tables、–quick、–set-charset优势:加快导出速度,且导出数据可快速导回默认状态:默认启用,可通过 --skip-opt 禁用注意事项:未指定 --quick 或 --opt 时,会将整个结果集放入内存,导出大数据库可能出现问题5.12 --quick,-q功能:强制 mysqldump 从服务器查询取得记录后直接输出,不缓存到内存适用场景:导出大表时非常有用,避免占用过多内存5.13 --routines,-R功能:导出存储过程以及自定义函数5.14 --single-transaction功能:导出数据前提交 BEGIN SQL 语句,保证导出时数据库的一致性状态特性:BEGIN 不阻塞任何应用程序适用表类型:仅适用于事务表(如 InnoDB、BDB)
互斥性:与 --lock-tables 互斥(LOCK TABLES 会使挂起事务隐含提交)
建议:导出大表时结合 --quick 选项使用5.15 --triggers功能:同时导出触发器默认状态:默认启用,可通过 --skip-triggers 禁用5.16 其他参数说明其他参数详情请参考 MySQL 官方手册
六、mysqldump 常用备份命令示例
6.1 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.sql6.2 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.sql6.3 在线备份命令(含 binlog 信息)
6.3.1 在线备份语法/usr/local/mysql/bin/mysqldump -uyejr -pyejr \--default-character-set=utf8 --opt --master-data=1 \--single-transaction --flush-logs db_name > db_name.sql6.3.2 在线备份特性仅在开始瞬间请求锁表,随后刷新 binlog导出文件中会加入 CHANGE MASTER 语句,指定当前备份的 binlog 位置适用场景:将备份文件恢复到 slave 服务器
七、mysqldump 备份文件还原方法
mysqldump 备份文件为可直接导入的 SQL 脚本,共两种导入方法:7.1 方法一:直接用 mysql 客户端导入7.1.1 导入语法/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql7.2 方法二:用 SOURCE 语法导入(实验不成功!!!)
7.2.1 语法说明非标准 SQL 语法,属于 mysql 客户端提供的功能
导入语法:
SOURCE /tmp/db_name.sql;7.2.2 注意事项需指定文件绝对路径文件需让 mysqld 运行用户(如 nobody)拥有读取权限总结到此这篇关于mysql使用mysqldump备份、还原数据库的文章就介绍到这了,更多相关mysql mysqldump备份还原数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:用mysqldump备份和恢复指定表的方法mysql数据库备份及恢复命令 mysqldump,source的用法浅谈mysqldump使用方法(MySQL数据库的备份与恢复) mysql备份恢复mysqldump.exe几个常用用例MySQL5.7 mysqldump备份与恢复的实现
