青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網

17站長網 首頁 數據庫 Mysql 查看內容

mysqldump備份失敗與解決方案合集

2023-3-16 15:14| 查看: 2140 |來源: 互聯網

mysqldump: Error: Query execution was interrupted, maximum statement execution time exceeded when trying to dump tablespacesmysqldump: Error 3024: Que ...

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:

      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的用戶權限。

本文最后更新于 2023-3-16 15:14,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 波多野结衣教师系列6 | 大地影院日本韩国电影免费观看 | 亚洲精品91 | 美女议员被泄裸照 | 妹妹我要操 | 久久学生精品国产自在拍 | 97人人碰免费视频公开 | 少妇一夜未归暴露妓女身份 | 给个男人都懂的网址2019 | 精品国产高清自在线看 | 吉吉影音先锋av资源网 | 日日夜夜影院在线播放 | 插我一区二区在线观看 | 欧洲xxxxx| 超碰在线视频公开 | 超碰免费视频在线观看 | 涩涩视频www在线观看入口 | 最新 国产 精品 精品 视频 | 日本最新免费区中文 | 一个人看的WWW高清电影 | 亚洲成AV人电影在线观看 | 亚洲不卡视频在线 | 免费看国产曰批40分钟 | 久久一er精这里有精品 | 暖暖日本在线手机免费完整版 | 老师xxxx69动漫 | 1234成人网 | 久久精品国产亚洲AV影院 | 免费国产久久拍久久爱 | 欧美日韩精品不卡在线观看 | 色欲人妻无码AV精品一区二区 | 人妻久久久精品99系列AV | 99er热精品视频国产免费 | 黃色带三级a级 | WWW国产精品人妻一二三区 | 久久亚洲精品AV成人无 | 国产高清精品国语特黄A片 国产高清国内精品福利色噜噜 | 精品免费久久久久久影院 | 日韩高清特级特黄毛片 | 精选国产AV精选一区二区三区 | 欧美性爱 先锋影音 |