最近统一处理了一大堆db备份失败的案例,针对mysqldump的失败的现象和处理措施总结如下
mysqldump: Error 2020: Got packet bigger than 'max_allowed_packet' bytes when dumping table `blt_bulletinannex` at row: 626
报错条件:一般是存在blob,text等字段,单条记录超过默认的24M
解决措施:mysqldump调大max_allow_packet参数,在服务器端修改这个参数无效
mysqldump: Couldn't execute 'show table status like 'members\_ban\_user\_view'': SELECT command denied to user ''@'%' for column 'user_id' in table 'members_ban_log' (1143)
报错条件:相应的视图的账户给的权限不足;或者是用户不存在
解决措施:需要视图定义账户的Create_view_priv和Show_view_priv权限;或者添加对应的用户和权限;删除该视图
mysqldump: Couldn't execute 'show create table `innodb_index_stats`': Table 'mysql.innodb_index_stats' doesn't exist (1146)
报错条件:mysql5.6,系统表损坏,该表是innodb引擎
解决措施:物理删除该表的frm文件和ibd文件,找到系统表的定义sql,重建系统表
mysqldump: Couldn't execute 'show create table `view_all_packages`': View 'locker.view_all_packages' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
报错条件:视图定义不合法
解决措施:删除或修改出问题的视图定义语句
mysqldump: Got error: 1045: Access denied for user 'ucloudbackup'@'10.10.1.242' (using password: YES) when trying to connect
报错条件:无法连接,密码,账户,host,port有问题
解决措施:先保证mysql能正常连接
mysqldump: Couldn't execute 'show create table `userar