Mysql

InnoDB:錯誤:找不到表“mysql”。“innodb_table_stats”

  • August 13, 2017

我遇到了同樣的錯誤,儘管我正在執行具有 3 個節點的 galera 集群。我嘗試按照InnoDB 的說明進行操作:錯誤:升級到 mysql 5.6 後未找到表“mysql”。“innodb_table_stats”但是當我進入執行創建語句的步驟時,出現以下錯誤:

Error Code: 1813. Tablespace for table '`mysql`.`innodb_index_stats`' exists.
Please DISCARD the tablespace before IMPORT.

這對我來說毫無意義,當我嘗試使用

drop tablespace `innodb_index_stats`;

我收到一個 SQL 語法錯誤。

問題其實很簡單。這是發生的事情

安裝 MySQL 時,5 個 InnoDB 系統表存在於兩個位置

  • 裡面/var/lib/mysql/mysql有 5 個.frm和 5 個.ibd文件
  • ibdata1在(InnoDB 系統表空間)內的數據字典內

在安裝的某個時刻,您必須刪除ibdata1. 這使得里面的 10 個 InnoDB 系統表文件/var/lib/mysql/mysql沒有數據字典條目。

解決方案

cd /var/lib/mysql/mysql
rm -f innodb_index_stats.frm
rm -f innodb_index_stats.ibd
rm -f innodb_table_stats.frm
rm -f innodb_table_stats.ibd
rm -f slave_master_info.frm
rm -f slave_master_info.ibd
rm -f slave_relay_log_info.frm
rm -f slave_relay_log_info.ibd
rm -f slave_worker_info.frm
rm -f slave_worker_info.ibd

然後,登錄 MySQL 並執行我的文章中的步驟:InnoDB: Error: Table “mysql”.“innodb_table_stats” not found after upgrade to mysql 5.6

試一試 !!!

引用自:https://dba.stackexchange.com/questions/111616