2010-09-24 7 views
0

Pour migrer ma base de données plus rapidement, j'ai essayé de copier les fichiers bruts (MYD et MYI) d'une base de données dans une autre machine. Toutes les tables fonctionnent correctement sauf deux tables qui ont été partitionnées. Ma structure de répertoire ressemble à ceci:La copie brute de la base de données mène `` Impossible de trouver le fichier: `

table1.frm 
table1.MYI 
table1.MYD 

table2.frm 
table2.par 
table2#P#p0.MYD 
table2#P#p0.MYI 
table2#P#p1.MYD 
table2#P#p1.MYI 

table3.frm 
table3.par 
table3#P#p0.MYD 
table3#P#p0.MYI 
table3#P#p1.MYD 
table3#P#p1.MYI 

Ce qui suit est une erreur produisent:

mysql> show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| mysql    | 
| test    | 
+--------------------+ 
3 rows in set (0.06 sec) 


mysql> use test; 
Database changed 

mysql> show tables; 
+---------------------------+ 
| Tables_in_test   | 
+---------------------------+ 
| table1     | 
| table2     | 
| table3     | 
+---------------------------+ 
3 rows in set (0.00 sec) 


mysql> explain table1; 
+-------+---------+------+-----+---------+----------------+ 
| Field | Type | Null | Key | Default | Extra   | 
+-------+---------+------+-----+---------+----------------+ 
| id | int(11) | NO | PRI | NULL | auto_increment | 
| a  | int(11) | YES |  | NULL |    | 
+-------+---------+------+-----+---------+----------------+ 
2 rows in set (0.01 sec) 


mysql> explain table2; 
ERROR 1017 (HY000): Can't find file: 'table2' (errno: 2) 

mysql> explain table3; 
ERROR 1017 (HY000): Can't find file: 'table3' (errno: 2) 

mysql> check TABLE table2; 
+--------------------------+-------+----------+--------------------------------------------------+ 
| Table     | Op | Msg_type | Msg_text           | 
+--------------------------+-------+----------+--------------------------------------------------+ 
| test.table2    | check | Error | Can't find file: 'table2' (errno: 2)    | 
| test.table2    | check | error | Corrupt           | 
+--------------------------+-------+----------+--------------------------------------------------+ 
2 rows in set (0.00 sec) 

J'ai vérifié les autorisations et tout semble bien. J'ai essayé de réparer mais ça n'a pas l'air de marcher non plus. Y at-il quelque chose qui peut être fait?

Répondre

1

Le serveur sur lequel vous les transférez peut ne pas avoir activé le partitionnement. Essayez SHOW VARIABLES LIKE '%partition%'; et vérifiez la valeur de la variable have_partioning ou have_partition_engine (en fonction de votre version de mysql). Des informations supplémentaires peuvent être trouvées dans le documentation.

+0

Apparemment, ma partition n'a pas de partitionnement. Merci beaucoup pour la perspicacité! – Legend

Questions connexes