存储过程mysql报错1271_mysqldump备份失败以及解决方法汇总

mysqldump备份失败以及解决方法汇总〇 mysqldump: Error: Query execution was interrupted, maximum statement execution time exceeded when trying to dump tablespaces

〇 mysqldump: Error 3024: Query execution was interrupted, maximum statement execution time exceeded when dumping table `$tb_name` at row: xxxx

版本:

MySQL 5.7.8+

原因:

max_execution_time过小

处理思路:

① 通过hints,增大N值(文档说,在hints用法中,将N改为0为无限制,但我测下来不生效,可设置成一个较大值如999999解决)

SELECT /*+ MAX_EXECUTION_TIME(N) */ * FROM t1 LIMIT 100000;

② 修改max_execution_time值,将该值设置为较大一个值,或设置为0(不限制)

附录:

该参数5.7.8被添加,单位为ms,动态参数,默认为0,设置为0时意味着SELECT超时不被设置(不限制超时时间)。不作用于存储过程中的SELECT语句,并且只作用于只读的SELECT,如INSERT ... SELECT ... 是不被作用的。

for more information:

http://blog.itpub.net/29773961/viewspace-2150443/〇 mysqldump: Couldnt execute SHOW FIELDS FROM `$view_name`: View $db_name.$view_name references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)

原因:

该view引用了无效的表,列,函数或者定义者。

处理思路:

可以根据报错信息,进入db,执行SHOW CREATE VIEW $view_name\G,查看该view的定义,逐一检查该view的基表,列,或相关函数与用户是否具有相关权限。考虑重建或删除视图。〇 mysqldump: Couldnt execute show create table `$view_name`: Illegal mix of collations for operation UNION (1271)

原因:

创建view时,使用UNION时存在非法的排序规则组合。

处理思路:

检查该视图定义,检查字符集,考虑重建或删除视图。〇 mysqldump: Couldnt execute SHOW FIELDS FROM `$view_name`: The user specified as a definer ($user@$host) does not exist (1449)

〇 mysqldump: Couldnt execute show table status like $view_name: SELECT command denied to user @% for column $col_name in table $tb_name (1143)

原因:

该视图的定义者$user@$host不存在。

处理思路:

检查mysql.user表,确认用户是否存在,考虑重建或删除视图。〇 Error: Couldnt read status information for table Income_config ()mysqldump: Couldnt execute show create table `Tser_table`: Table $db_name.test_table doesnt exist (1146)

〇 mysqldump: Got error: 1049: Unknown database $db_name when selecting the database

原因一:

从lower_case_table_names的0设置成1,导致部分原来含有大写字母的库表“找不到”。

处理思路:

将lower_case_table_names设置回0。

若有必须将lower_case_table_names设置为1,需先设置为0,并将含有大写字母的库表改成小写,再设置为1。

原因二(MySQL 5.5及以下版本可能出现):

表损坏导致该表找不到(InnoDB)。frm和ibd文件都在,但无法SHOW CREATE TABLE xxx\G

error log一则:170820 17:43:17 [Note] Event Scheduler: scheduler thread started with id 1

170820 17:44:48 InnoDB: error: space object of table '$db_name/$tb_name',

InnoDB: space id 4335 did not exist in memory. Retrying an open.

170820 17:44:48 InnoDB: Error: tablespace id and flags in file './$db_name/$tb_name.ibd' are 0 and 0, but in the InnoDB

InnoDB: data dictionary they are 4335 and 0.

InnoDB: Have you moved InnoDB .ibd files around without using the

InnoDB: commands DISCARD TABLESPACE and IMPORT TABLESPACE?

InnoDB: Please refer to

InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting-datadict.html

InnoDB: for how to resolve the issue.

170820 17:44:48 InnoDB: cannot calculate statistics for table $db_name/$tb_name

InnoDB: because the .ibd file is missing. For help, please refer to

InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html

170820 17:44:48 [ERROR] MySQL is trying to open a table handle but the .ibd file for

table $db_name/$tb_name does not exist.

Have you deleted the .ibd file from the database directory under

the MySQL datadir, or have you used DISCARD TABLESPACE?

See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html

how you can resolve the problem.

处理思路:

从完整备份+binlog还原,对于有主或从的实例,可通过物理备份还原。〇 mysqldump: Error 2020: Got packet bigger than max_allowed_packet bytes when dumping table `$tb_name` at row: xxxx

原因:

默认的max_allowed_packet过小

处理思路:

在mysqldump时增加max_allowed_packet的大小,如mysqldump --max-allowed-packet=268435456〇 mysqldump: Error 1412: Table definition has changed, please retry transaction when dumping table `$tb_name` at row: 0

原因:

在备份该表时,表定义被修改。FLUSH TABLE WITH READ LOCK只保证数据一致性,并不保证schema不被修改。

处理思路:

备份时期不做DDL操作。

复现一:① session1> CREATE TABLE a (id int) ENGINE=InnoDB;

② session2> START TRANSACTION WITH CONSISTENT SNAPSHOT;

③ session1> ALTER TABLE a ADD COLUMN name varchar(32);

④ session2> SELECT * FROM a;

ERROR 1412 (HY000): Table definition has changed, please retry transaction

p.s. 如果③和④调换顺序,则ALTER TABLE无法成功,则会等待MDL。

复现二:① session1> START TRANSACTION WITH CONSISTENT SNAPSHOT;

② session2> CREATE TABLE b (id int) ENGINE=InnoDB;

③ session1> SELECT * FROM b;

ERROR 1412 (HY000): Table definition has changed, please retry transaction

〇 mysqldump: Couldnt execute show create table `$tb_name`: Unable to open underlying table which is differently defined or of non-MyISAM type or doesnt exist (1168)

原因:

出现在表引擎为MERGE时,备份到该表时,发现该表定义存在问题。可能merge的表不存在,或者该表合并的基表包含非MyISAM引擎的表。

处理思路:

删除或者重建该MERGE表。

复现一(merge表中定义包含了非MyISAM表):CREATE TABLE t1(id int) ENGINE=InnoDB;

CREATE TABLE t2(id int) ENGINE=MyISAM;

CREATE TABLE merge_t(id int)ENGINE=MERGE UNION=(t1, t2);

SELECT * FROM merge_t;

ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist

复现二(表不存在):CREATE TABLE t1(id int) ENGINE=MyISAM;

CREATE TABLE t2(id int) ENGINE=MyISAM;

CREATE TABLE merge_t(id int)ENGINE=MERGE UNION=(t1, t2);

SELECT * FROM merge_t;

Empty set (0.00 sec)-- 正常返回

DROP TABLE t1;

SELECT * FROM merge_t;

ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist

附录:

通过check table merge_t可以检查是哪张表有问题,如此处是t1:[15:20:12] root@localhost [test]> check table merge_t\G

*************************** 1. row ***************************

Table: test.merge_t

Op: check

Msg_type: Error

Msg_text: Table 'test.t1' is differently defined or of non-MyISAM type or doesn't exist

*************************** 2. row ***************************

Table: test.merge_t

Op: check

Msg_type: Error

Msg_text: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist

*************************** 3. row ***************************

Table: test.merge_t

Op: check

Msg_type: error

Msg_text: Corrupt

3 rows in set (0.00 sec)

通过cat表MGR��义结构文件可以检查MERGE表的基表:

[root@host test]# pwd

/data/mysql-data/mysql57/data/test

[root@host test]# cat merge_t.MRG

t1

t2

〇 mysqldump: Couldnt execute show create table `$tb_name`: Table ./$db_name/$tb_name is marked as crashed and last (automatic?) repair failed (144)

〇 mysqldump: Couldnt execute show create table `$tb_name`: Table ./$db_name/$tb_name is marked as crashed and should be repaired (145)

〇 mysqldump: Error 1194: Table throne_tower is marked as crashed and should be repaired when dumping table `$tb_name` at row: xxxxx

原因:

mysqldump在拉取表定义时报错,表损坏。

处理思路:

该损坏发生在非事务表如MyISAM,通过mysqlcheck或者repair table修复即可。〇 mysqldump: Couldnt execute SHOW FUNCTION STATUS WHERE Db = $db_name: Cannot load from mysql.$tb_name. The table is probably corrupted (1728)

原因:

字典表不正确,可能是表本身损坏,也有可能是导入了其他版本的mysql schema盖掉了字典表。

处理思路:

repair table修复,若仍无用,则可以尝试mysql_upgrade来修复,或找到对应版本的mysql_system_tables_fix.sql来导入。〇 mysqldump: Couldnt execute show events: Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577)

原因:

字典表不正确,极大可能是导入了其他版本的mysql schema盖掉了字典表。

处理思路:

尝试mysql_upgrade来修复,或找到对应版本的mysql_system_tables_fix.sql来导入。该报错可能在upgrade操作之后重启实例。〇 mysqldump: Error: Got error 28 from storage engine when trying to dump tablespaces

mysqldump: Couldnt execute show fields from `$tb_name`: Got error 28 from storage engine (1030)

原因:

@@tmpdir满了。

处理思路:

清除@@tmpdir,可以通过SELECT @@tmpdir;检查具体目录。〇 mysqldump: Lost connection to MySQL server during query (2013)

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '@@socket' (111)

原因:

mysqldump执行过程中mysqld被关闭。

处理思路:

检查mysqld被关闭的原因,一般常见原因是发生OOM。〇 mysqldump: Couldn't execute 'SHOW SLAVE STATUS': Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation (1227)

原因:

mysqldump加了--dump-slave参数,缺少SUPER或REPLICATION CLIENT来执行SHOW SLAVE STATUS。

处理思路:

检查mysqldump的用户权限。〇 mysqldump: Couldn't execute 'STOP SLAVE SQL_THREAD': Access denied for user 'dump'@'localhost' (using password: YES) (1045)

原因:

mysqldump加了--dump-slave参数,缺少SUPER权限使用STOP SLAVE SQL_THREAD。

处理思路:

检查mysqldump的用户权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xamarin使XRPC实现接口/委托远程调用

在之前的文章中已经介绍如何使用Beetlex.XRCP组件进行接口/委托远程调用;由于组件BeetleX.XRPC.Clients支持.NETStandard2,因此Xamarin同样可以使用它来实现基于接口/委托的数据交互通讯。接下来通过Xamarin实现一个简单的移动程序,并通过XRP…

mysql 拷贝安装_Mysql的安装和主从复制

安装mysql服务步骤一:首先下载mysql的yum源配置 ,下载mysql的yum源wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm步骤二:安装mysql的yum源yum -y install mysql57-community-release-el7-11.noarch.rpm步骤三&…

浅谈CLR基础知识

中午的时候,有一个小伙伴问我,CLR到底是进程还是线程,它和自己写的程序是怎么关联的。这一问,直接把我问懞了。下面我尝试用简单的语言来描述这个问题,有的地方无法讲的太细(不然内容会太多)&am…

mysql打开无法控制_MySQL不能启动和停止 MySQL各种解决方法教程

MySQL不能启动和停止 MySQL各种解决方法教程本文章总结了种MySQL无法启动、无法停止解决办法,包括在windows系统,linux系统中mysql不能启动与停止的解决办法,有需了解的朋友可进入参考。解决无法启动A、先使用命令C:/Program files/mysql/bin/mysqladmin…

NHibernate中的SchemaExport

昨天,在看hibernate文档的时候,看到了这样一段: You should now create this table in your database manually, and later read Chapter 15, Toolset Guide if youwant to automate this step with the SchemaExport tool. This tool can …

Asp.Net Core使用Skywalking实现分布式链路追踪

介绍Skywalking 是 Apache 基金会下面的一个开源 APM 项目,是一套(APM)分布式追踪系统,提供了很多数据存储列如:Mysql,H2,Elasticsearch7 等。其中APM 全称是应用性能监测软件,主要是用来处理以及追踪分布式…

python 里什么时候缩进_python什么时候缩进

Python中的缩进(Indentation)决定了代码的作用域范围。这一点和传统的c/c有很大的不同(传统的c/c使用花括号花括号{}符决定作用域的范围;python使用缩进空格来表示作用域的范围,相同缩进行的代码是处于同一范围)。每行代码中开头的空格数(whitespace)用于…

Hey, everybody!

今天有一位MVP朋友问我是否想做MVP,我想了半天,还是觉得有机会就要尝试,失败了也没什么大不了的。所以最后决定要参加这么一次活动,虽然是自不量力,也要搏一搏啦!如果说大家都能够来推荐我一下多好啊&#…

C# 9 新特性 —— 补充篇

C# 9 新特性 —— 补充篇Intro前面我们分别介绍了一些 C# 9 中的新特性,还有一些我觉得需要了解一下的新特性,写一篇作为补充。Top-Level Statements在以往的代码里,一个应用程序必须要有 Main 方法才能运行,从 C# 9 开始&#xf…

使用Popup窗口创建无限级Web页菜单(5)

代码框架在(4)里面已经全部列出来了,现在工作就是按流程把他们完成。本来实现一个prototype的Menu菜单类只需要最多300行代码,可是后来做了一些操作习惯支持和UI显示上的优化后,代码猛增到了1000多行。不过final版本看起来确实比土不拉叽的pr…

【gRPC】ProtoBuf 语言快速学习指南

继上篇【gRPC】 在.Net core中使用gRPC了解了gRPC的使用,gRPC基于HTTP/2和ProtoBuf,ProtoBuf就非常有必要好好了解一下了,那么ProtoBuf究竟是什么?ProtoBuf Google Protocol Buffer是一种语言无关、平台无关、可扩展的序列化结构数…

vspythonqt混合_PYQT5 vscode联合操作qtdesigner的方法

除了使用pycharm外,还可使用vscode来操作pyqt,方法如下:1. 在vscode中配置相关的pyqt的相关根据自己实际情况修改第一项pyqt的路径2. 创建一个文件夹,右键,最后一项可以创建一个新窗口创建的新窗口后缀为 .ui右键中有以…

发现 ASP.Net 的一个关于回车提交的 Bug ? 必须多于一个 Text 域回车提交,Server: ButtonX_Click 才能截获!...

ASP.Net 中: 如果 Text 类型的域只有一个,此时按下回车提交,WebServer 端 ButtonX_Click 竟然截获不到,只能在 WebServer 端 Page_Load 里截获,与传统的 Web Form 提交到 Action CGI 没区别了!假如 Text 类型的域多于一个,此时按下回车提交,在 WebServer 端 ButtonX_Click 可以…

TIOBE 1 月榜单:Python年度语言四连冠,C 语言再次第一

喜欢就关注我们吧!TIOBE 公布了 2021 年 1 月的编程语言排行榜。TIOBE 本月公布了 2020 年度编程语言,Python 获得四连冠,是过去一年中最受欢迎的编程语言。Python 在 2020 年实现了 2.01% 的正增长;C 紧随其后&#x…

java 验证登陆_java登陆界面验证

展开全部以下代码就是了。详细参照附件import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swin…

A piecture of J2EE Core Patterns

这张图是J2EE Core Patterns里面的一幅图片,在Enterprise Solution Patterns Using Microsoft.Net里面虽然模式的概念与应用大同小异,但是那张表现架构模式整体的图感觉有点不直观,相比之下这幅图显得更清晰一点。 发到这里供大家参考学习:&#xff09…

孙丕恕离开浪潮 仪器厂历时60年成为服务器龙头企业

2020年12月31日浪潮集团有限公司董事会选举邹庆忠为公司董事长(法定代表人);孙丕恕不再担任公司董事长;公司不再聘任孙丕恕为首席执行官。另外,经省委研究决定,拟任省直部门(单位)副…

java 数组 树_java使用顺序数组实现二叉树

顺序数组实现二叉树实现原理对于下标为index的节点其满足1.左孩子节点的下标为2index12.右孩子节点的下标为2index2代码实现package tree;public class ArrayBinaryTree {private int[] arr;public ArrayBinaryTree(int[] arr){this.arrarr;}public void preOrder(int index){i…

hack 入侵 142 主机的过程

时间 2005 3 29 iis 日志文件显示有黑客痕迹 常用的iis 分析软件的介绍 使用 find 命令 入侵检测的常用方法参考 http://www.xfocus.net/articles/200208/440.html 编写日志脚本参考 http://www.blueidea.com/bbs/archivecontent.asp?id1304500 sql 注入方法介绍和预防 http:/…

【Docker】Asp.net core在docker容器中的端口问题

还记得【One by one系列】一步步学习docker(三)——实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右。docker run --name container-name -p 81:5000 mywebapi所谓知其然就要知其所以然,浅…