㈠ 常用操作 ① 备份全库 语法: mysqldump -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 > 文件名.sql 例子: mysqldump -hlocalhost -P3306 -urocky -p123456 db_test > bakfile1.sql ② 带删除表的全库备份 备份MySQL数据库为带删除表的格式、能够让该备份覆盖已有数据库而不需要手动删除原有数据库 语法: mysqldump -–add-drop-table -u{username} -p{password} {databasename} > {backfile.sql} 例子: mysqldump -–add-drop-table –urocky -p123456 db_test > bakfile2.sql ③ 压缩备份 语法: mysqldump -h{hostname} -u{username} -p{password} {databasename} | gzip > {backfile.sql.gz} 例子: mysqldump –hlocalhost –urocky –p123456 db_test | gzip > bakfile3.sql.gz ④ 备份某些表 语法: mysqldump -h主机名 -P端口 -u用户名 -p密码 (–tables | –quick) 数据库名 表名1 (表名2 …) > 文件名.sql 例子: mysqldump -hlocalhost -urocky -p123456 db_test tbl_test > bakfile4-1.sql mysqldump -hlocalhost -P3306 -urocky -p123456 db_test tbl_test > bakfile4-2.sql mysqldump -hlocalhost -P3306 -urocky -p123456 --quick db_test tbl_test > bakfile4-3.sql mysqldump -hlocalhost -P3306 -urocky -p123456 --tables db_test tbl_test1 tbl_test2 > bakfile4-4.sql ⑤ 同时备份多个库 语法: mysqldump -h{hostname} (-P{port}) -u{username} -p{password} –databases {dbname1} {dbname2} {dbname3} > multibackfile.sql 例子: mysqldump -hlocalhost -urocky -p123456 –databases db_test1 db_test2 db_test3 > multibackfile.sql ⑥ 备份服务器上的所有数据库 语法: mysqldump –all-databases > allbackupfile.sql ⑦ 仅仅备份数据库结构 语法: mysqldump –no-data –databases {databasename1} {databasename2} > {structurebackfile.sql} 例子: mysqldump –no-data –databases db_test1 db_test2 > structurebackfile.sql ⑧ 导出某个表的部分数据 语法: mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径 例子: mysqldump -uroot -p123456 test test_data --where=" id > 100" > /tmp/test.sql ㈡ 案例分享 ① 案例描述: mysqldump命令常规方式创建备份拉到某机器上恢复、恢复执行很成功、一条错误信息都没看着 但等恢复完登录到数据库中一瞅、你猜怎么地、数据不全 第一反应当然是查看备份文件、经过检查、果然、恢复操作确实没有问题、 因为备份集中的内容就不全,那么,为什么备份集内容不全 ② 原因分析: 分析发现、原来是在导出某个视图对象时报错、mysqldump自动中止、因此所有该对象之后的就都没备份了 ③ 场景模拟回放:
Session_A:
mysql> use test;
Database changed
mysql> create table rocky (id int,name varchar(100));
Query OK, 0 rows affected (0.04 sec)
mysql> create view rocky_view as select * from rocky;
Query OK, 0 rows affected (0.01 sec)
mysql> rename table rocky to robbin;
Query OK, 0 rows affected (0.03 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
Session_B:
[mysql@localhost bin]$ ./mysqldump --tables test robbin rocky_view > bak.sql
mysqldump: Got error: 1356: View 'test.rocky_view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them when doing LOCK TABLES
创建备份时、view对象引用的表对象不存在、执行LOCK TABLES失败、于是mysqldump就中止了
这其实真不怪 mysqldump、因为mysqldump执行过程中遇到任何问题、默认情况下都是直接退出
④ 解决方案:
执行mysqldump时附加--force参数、该参数功能是当遇到错误时忽略、继续执行后面的操作
这个参数提供类似 Oracle 数据库中exp命令的ignore=y参数的功能、
事实上在 Oracle 数据库中执行exp时通常都会指定ignore、
对应到MySQL数据库、我想在执行mysqldump命令行过程中、--force参数也应做为必备参数调用
㈢ mysqldump意外终止的原因以及解决方法
① 错误现象:
Lost connection to MySQL server at ‘reading initial communication packet’:
原因分析:
因为DNS不稳定导致的
解决方案:
开启skip-name-resolve选项将会最大程度避免这个问题
② 错误现象:
Lost connection to MySQL server at ‘reading authorization packet’:
原因分析:
从MySQL获取一个可用的连接是多次握手的结果。在多次握手的过程中,网络波动会导致握手失败
解决方案:
最好的解决办法是让mysqldump重新发起连接请求
③ 错误现象:
Lost connection to MySQL server during query
原因分析:
mysqldump处理数据过慢(NFS、gzip引起)会导致MySQL主动断开连接
解决方案:
加大net_write_timeout的设置
分享到:
相关推荐
-bash: mysqldump: command not found问题解决
08-MySQL逻辑备份工具mysqldump&mysqlpump&mydumper1
在不依赖mysqldump CLI的情况下,在Go中创建MYSQL转储。 简单的例子 package main import ( "database/sql" "fmt" "github.com/JamesStewy/go-mysqldump" _ "github.com/go-sql-driver/mysql" ) func main () {...
[root@jb51.net]# mysqldump -u dbuser -ppass db > db.sql mysqldump: Got error: ...即: [root@jb51.net]# mysqldump -u dbuser -ppass db –skip-lock-tables > db.sql 解决2: 使用具有lock权限的用户进行备份。
MySQL错误代码以及出错信息对照大全
mysqldump备份.sh
LNH_MySQL 03-mysqldump逻辑备份的工作原理.mp4
mysqldump是MySQL 自带的逻辑备份工具。 备份命令: mysqldump -uroot -pPassword [database name] > [dump file] ;备份命令: 使用命令备份名为student的数据库,将该文件备份到D盘根目录下: ;备份成功以后,可以...
利用Zabbix监控mysqldump定时备份.docx
专业技术
mysql数据库备份还原实战操作步骤-mysqldump备份还原
总结关于 mysqldump 多张表筛选备份的使用方法
mysqldump
mysqldump使用方法:可直接使用,备份数据库 使用方法:mysqldump --opt -u用户名 -p密码 -hIP地址 -P数据库端口 要备份的库 > 导入指定的sql里 示例:mysqldump --opt -uroot -p123123 -h192.168.2.10 -P3306 abc >...
mysqldump备份mysql数据库.docx
MySQL:使用mysqldump在Windows数据库定时备份-- mysqldump --opt --single-transaction=TRUE --user=%user% --password=%password% --host=%host% --protocol=tcp --port=%port% --default-character-set=%charSet%...
1,使用mysqldump时报错(1064),这个是因为mysqldump版本太低与当前数据库版本不一致导致的。 mysqldump: Couldn’t execute ‘SET OPTION SQL_QUOTE_SHOW_CREATE=1’: You have an error in your SQL syntax; ...
mysqldump备份: 代码如下:mysqldump -u用户名 -p密码 -h主机 数据库 a -w “sql条件” –lock-all-tables > 路径 mysqldump还原: 代码如下:mysqldump -u用户名 -p密码 -h主机 数据库 < 路径 mysqldump按条件...
下面小编就为大家带来一篇浅谈mysqldump使用方法(MySQL数据库的备份与恢复)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
MySQL掌握备份恢复工具mysqldump实践