遷移匯入ibd表資料正確的方式以及各種錯誤示例
一、問題提出
在mysql中使用獨享表空間,啟用innodb_file_per_table,把A庫表a遷移匯入B庫,怎麼樣匯入?
二、問題分析
把A庫表a遷移匯入B庫,可以用mysqldump,當然也可以複製表a.ibd檔案。複製表a.ibd檔案要有正確的順序,否則,會有各種錯誤。
三、操作步驟
正確的操作步驟應該是:在B庫,定義表-->刪除表空間(alter table ... discard tablespace;)-->複製*.ibd/*.cfg檔案-->匯入表空間(ALTER TABLE ... IMPORT TABLESPACE )
四、不按照定義表-->刪除表空間-->複製*.ibd/*.cfg檔案-->匯入表空間,會出現哪些錯誤呢?
請看如下操作:(1)直接複製a.ibd,a.frm到B庫的相應位置,報錯:
mysql> select * from a;
ERROR 1146 (42S02): Table 'test.a' doesn't exist
mysql> drop table a;
ERROR 1051 (42S02): Unknown table 'test.a'
mysql> create table a (id int,name varchar(30),age int);
ERROR 1813 (HY000): Tablespace for table '`test`.`a`' exists. Please DISCARD the tablespace before IMPORT. #不能建立表a
mysql> #######delete a.ibd a.frm ###### 這裡我刪除掉 a.ibd a.frm
mysql> select * from a;
ERROR 1146 (42S02): Table 'test.a' doesn't exist
mysql> drop table a;
ERROR 1051 (42S02): Unknown table 'test.a'
mysql> create table a (id int,name varchar(30),age int); ###能建立表a
Query OK, 0 rows affected (0.01 sec)
在mysql中使用獨享表空間,啟用innodb_file_per_table,把A庫表a遷移匯入B庫,怎麼樣匯入?
二、問題分析
把A庫表a遷移匯入B庫,可以用mysqldump,當然也可以複製表a.ibd檔案。複製表a.ibd檔案要有正確的順序,否則,會有各種錯誤。
三、操作步驟
正確的操作步驟應該是:在B庫,定義表-->刪除表空間(alter table ... discard tablespace;)-->複製*.ibd/*.cfg檔案-->匯入表空間(ALTER TABLE ... IMPORT TABLESPACE )
四、不按照定義表-->刪除表空間-->複製*.ibd/*.cfg檔案-->匯入表空間,會出現哪些錯誤呢?
請看如下操作:(1)直接複製a.ibd,a.frm到B庫的相應位置,報錯:
mysql> select * from a;
ERROR 1146 (42S02): Table 'test.a' doesn't exist
mysql> drop table a;
ERROR 1051 (42S02): Unknown table 'test.a'
mysql> create table a (id int,name varchar(30),age int);
ERROR 1813 (HY000): Tablespace for table '`test`.`a`' exists. Please DISCARD the tablespace before IMPORT. #不能建立表a
mysql> #######delete a.ibd a.frm ###### 這裡我刪除掉 a.ibd a.frm
mysql> select * from a;
ERROR 1146 (42S02): Table 'test.a' doesn't exist
mysql> drop table a;
ERROR 1051 (42S02): Unknown table 'test.a'
mysql> create table a (id int,name varchar(30),age int); ###能建立表a
Query OK, 0 rows affected (0.01 sec)
上面順序,不能建立表a,不能執行alter table a discard tablespace;
經典的1146錯誤,表空間遭到破壞,需要進行表空間的恢復。
五、問題總結:
要按照順序,正確操作。
經典的1146錯誤,表空間遭到破壞,需要進行表空間的恢復。
五、問題總結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30393770/viewspace-2123734/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jQuery匯入html的正確方式jQueryHTML
- 達夢資料庫遷移資料/複製表/匯入匯出2資料庫
- mongodb資料遷移2種方式比較MongoDB
- MongoDB 資料遷移 備份 匯入(自用)MongoDB
- C++編譯錯誤的正確查詢方式C++編譯
- MYSQL資料匯出備份、匯入的幾種方式MySql
- Excel匯入null錯誤解決方式ExcelNull
- ClickHouse學習系列之八【資料匯入遷移&同步】
- 解決遷移資料庫錯誤,索引長度過長資料庫索引
- 用begin backup的方式遷移資料庫資料庫
- Ubuntu各種錯誤彙總Ubuntu
- 各種掃路車正確的保養方法
- 資料遷移(1)——通過資料泵表結構批量遷移
- Flutter 錯誤捕獲的正確姿勢Flutter
- 檢測資料庫遷移準確性資料庫
- 詳細分析 Java 中啟動執行緒的正確和錯誤方式Java執行緒
- Oracle用資料泵匯入資料包12899的錯誤碼解決方法Oracle
- SNP Glue:SAP資料匯入到其他系統的多種方式
- Oracle各種版本下“示例資料庫的建立”的建立Oracle資料庫
- Excel 表匯入資料Excel
- 【前端除錯】- 斷點除錯的正確開啟方式前端除錯斷點
- laravel 資料庫遷移時報錯Laravel資料庫
- 一種SYBASE資料庫錯誤DBSQL_SQL_ERROR的解決方式資料庫SQLError
- 利用offline datafile檔案方式遷移資料
- Oracle官方推薦的資料遷移方式評估Oracle
- Android Studio 專案匯入的正確姿勢Android
- Docker容器中的備份、恢復、遷移、匯入、匯出Docker
- sql統計各種奇葩的資料庫表資料SQL資料庫
- macbook開機登入時輸入正確的密碼卻提示密碼錯誤Mac密碼
- Laravel5.4 資料庫遷移錯誤 SQLSTATE [42000] Syntax error or access violation 1071Laravel資料庫SQLError
- 資料遷移無法新增外來鍵約束,錯誤程式碼 1215
- Wordpress獨立站資料庫連線錯誤的三種解決方式資料庫
- 你知道那幾種資料遷移工具?
- 支援多種資料庫型別的遷移工具資料庫型別
- 技術分享 | MySQL 的幾種資料遷移方案MySql
- 1.0 ORACLE到MYSQL資料遷移方式選型OracleMySql
- 故障分析 | MySQL 使用 load data 匯入資料錯誤的一個場景MySql
- 一種錯誤的資料欄位取名
- 簡單介紹mysql中資料庫覆蓋匯入的幾種方式MySql資料庫