精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網(wǎng)

17站長網(wǎng) 首頁 數(shù)據(jù)庫 Mysql 查看內(nèi)容

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

2023-3-16 15:14| 查看: 2176 |來源: 互聯(lián)網(wǎng)

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(不限制)

附錄:

該參數(shù)5.7.8被添加,單位為ms,動態(tài)參數(shù),默認為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引用了無效的表,列,函數(shù)或者定義者。

處理思路:

可以根據(jù)報錯信息,進入db,執(zhí)行SHOW CREATE VIEW $view_name/G,查看該view的定義,逐一檢查該view的基表,列,或相關函數(shù)與用戶是否具有相關權限。考慮重建或刪除視圖。

      mysqldump: Couldnt execute show create table `$view_name`: Illegal mix of collations for operation UNION (1271)

原因:

創(chuàng)建view時,使用UNION時存在非法的排序規(guī)則組合。

處理思路:

檢查該視圖定義,檢查字符集,考慮重建或刪除視圖。

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及以下版本可能出現(xiàn)):

表損壞導致該表找不到(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只保證數(shù)據(jù)一致性,并不保證schema不被修改。

處理思路:

備份時期不做DDL操作。

復現(xiàn)一:

① 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. 如果③和④調(diào)換順序,則ALTER TABLE無法成功,則會等待MDL。

復現(xiàn)二:

① 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)

原因:

出現(xiàn)在表引擎為MERGE時,備份到該表時,發(fā)現(xiàn)該表定義存在問題。可能merge的表不存在,或者該表合并的基表包含非MyISAM引擎的表。

處理思路:

刪除或者重建該MERGE表。

復現(xiàn)一(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

復現(xiàn)二(表不存在):

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在拉取表定義時報錯,表損壞。

處理思路:

該損壞發(fā)生在非事務表如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執(zhí)行過程中mysqld被關閉。

處理思路:

檢查mysqld被關閉的原因,一般常見原因是發(fā)生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參數(shù),缺少SUPER或REPLICATION CLIENT來執(zhí)行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參數(shù),缺少SUPER權限使用STOP SLAVE SQL_THREAD。

處理思路:

檢查mysqldump的用戶權限。

本文最后更新于 2023-3-16 15:14,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:[email protected]
·END·
站長網(wǎng)微信號:w17tui,關注站長、創(chuàng)業(yè)、關注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務中心

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

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務,與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!

掃一掃,關注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 国产一级淫片a免费播放口之 | 日韩一区二区国色天香 | 国产在线视频网 | 中文字幕日韩在线一区国内 | 久草国产精品视频 | 一区二区在线精品免费视频 | 又黄又免费的视频 | 亚洲图色网站 | 成人欧美在线 | 亚洲xx站 | 国产亚洲片 | 1000部末满18在线观看黄 | 黄色欧美在线观看 | 欧美国产成人精品一区二区三区 | 国产精品免费视频网站 | 色综合合久久天天给综看 | 国产在线观看青草视频 | 污污小视频在线观看 | 久草视频中文在线 | 看一级毛片免费观看视频 | 欧美亚洲综合在线观看 | 国产区精品高清在线观看 | 狠狠狠色丁香婷婷综合久久五月 | 手机在线观看你懂得 | 好湿好紧好痛a级是免费视频 | 亚洲成a人片在线网站 | 亚洲久久久久 | 国产福利小视频在线播放观看 | 女人高清性色生活片 | 真人女人一级毛片免费视频观看 | 久久日本精品国产精品白 | 800av在线视频 | 亚洲国产精品二区久久 | 国产在线观看黄色 | 日韩精品你懂的在线播放 | 亚洲人成激情在线播放 | 亚洲精品中文字幕午夜 | 色黄网站成年女人色毛片 | 在线碰碰视频在线观看 | c看欧美激情毛片 | 91香蕉国产视频 |