③ 场景模拟回放:
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的设置
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1208092/ ,如需转载,请注明出处,否则将追究法律责任。