MySQL5.7 import表結構報錯超出表空間界限


事后測試了一下,一下方法就是垃圾,看看可以,別跟着學!!!

數據庫重啟后,問題依然暴露出來了,參數什么的都是扯,擦

 

記錄一個困擾我好幾天的問題。先貼上報錯:

space name jxtms/CostManage, which is outside the tablespace bounds. B
yte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server.

MySQL5.7在進行表空間遷移時,在import tablespace時,總是到固定的一張表時,出現連接失敗報錯。

一開始以為是連接超時問題,調整超時參數后,發現問題依然存在。

查看錯誤日志,發現如上的報錯信息。

這個報錯信息很奇怪,超出了表空間限制,讓我檢查ibdata相關參數。配置文件中和ibdata相關的就innodb_data_file_path= ibdata1:256M:autoextend,調整該參數為一個較大的值。

重新執行,錯誤依然存在。

百度了很久,沒有一個能給出正確解決的。硬着頭皮從國外的網站進行搜索,擦,竟然找到了。

說是一個MySQL5.7的bug,需要關閉持久化統計信息參數(innodb_stats_persistent=OFF),才能解決。

感覺重建光明啊。

修改后,報錯真的解決了。

不知道是使用中文的小朋友沒有遇到過這個問題 還是百度略拙,趕緊記錄一下,額哈哈。

注意:

持久化統計信息參數是在數據庫關閉時,將表的統計信息存儲到本地,在打開數據庫時,這些統計信息還會保留關閉前的樣子。這樣在需要生成SQL執行計划時,不需要現收集統計信息,它就在哪了。

這個參數優化了剛啟動數據庫的SQL解析效率。關閉后,這一效率就沒有了,作為補丁,可以手動寫個腳本,在啟動數據庫后,自動進行統計更新。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM