2012-08-24 17 views
11

Voglio copiare le tabelle del database dal mio server di produzione a una macchina di test locale in modo da poter eseguire prova om (copie di) i dati reali.MySQL, i file delle tabelle di copia danno origine a "ERRORE 1017 (HY000): Impossibile trovare il file:" anche se è lì lì

Ho interrotto mysql e cancellato tutti i file FRM, MYD e MYI. L'avvio di mysql qui e l'esecuzione di query sulle tabelle mostra un set di risultati vuoto. Ho quindi chiuso mysql e copiato tutti i file FRM, MYD e MYI dal server. Quando si avvia mysql "mostra le tabelle" mostra le tabelle così come previsto, ma che cercano di interrogare le ricevo il messaggio di errore

ERROR 1017 (HY000): Can't find file: './WhateverTableIQuery.frm' (errno: 13)

Ma il file WhateverTableIQuery.frm è sul disco ed è identico a quello sul server.

Qualche idea su quale potrebbe essere il problema?

+0

Non ho scaricato e importato perché volevo risparmiare tempo. Alcuni dei tavoli sono grandi e costruire gli indici richiede sempre. – user1622094

risposta

30

Io suggerirei di dare due cose una prova:

1. Controllare le autorizzazioni

Assicurarsi che la directory dei dati MySQL e tutti i file in essa contenuti sono di proprietà di utente MySQL e di gruppo mysql. Questo non può essere il caso se sono stati copiati i file sul vostro computer di prova locale come utente root:

chown -R mysql:mysql your-mysql-data-dir-here 

2. Riparazione corrotti tabelle

Usa mysqlcheck per verificare la presenza di tabelle danneggiate e ripararli se trova uno qualsiasi:

Se ancora non è possibile utilizzare le tabelle, quindi dare mysqldump un andare!

+0

Come hai indovinato ho copiato i file come root e ho dimenticato di cambiare il proprietario. Facendo così risolto il problema. Molte grazie! – user1622094

+0

Hmmm. 'sudo ls -lah/var/lib/mysql/homestead' dice già che tutti i file delle tabelle sono di proprietà dell'utente e del gruppo' mysql'. E 'mysqlcheck -u root -p homestead' non ha riscontrato problemi. Quindi sfortunatamente sono ancora perso. – Ryan

2

Ho riscontrato lo stesso problema dopo aver ripristinato un database MySQL con file FRM e MYD. Dopo un certo numero di ore trascorse, ho osservato che ho configurato la directory del database con il solo permesso di lettura e scrittura per l'utente mysql ma non il permesso di esecuzione. Dopo aver aggiunto il permesso di esecuzione alla directory del database, il problema è stato risolto.

0

Ho avuto lo stesso problema un paio di minuti fa e mi ci sono voluti alcuni minuti per rendermi conto che non avevo il permesso sufficiente per accedere al file .sql che volevo importare.

Per risolvere questo problema, è sufficiente spostare il file in un posto a cui si è sicuri di avere accesso (con l'utente corrente). (ad esempio ~/Home_directory).

Spero di poter aiutare qualche anima solitaria che cercava la risposta proprio come lo ero io.

0

ho avuto lo stesso problema e fatto questo ...

  • Eliminare Migrazioni cartella
  • eliminare la tabella _migrationhistory
  • Enable, aggiungere e aggiornare la migrazione

sono sicuro c'è un modo molto migliore per risolvere questo problema, ma ha funzionato per me.

0

Ho modificato le autorizzazioni per la directory mysql-data e anche per il file <table>.frm.
Se impiegando come utente root:

  • chmod 600 mysql-directory dati chmod 600
  • mysql-data-directory/tableOfData.frm

Se usando come utente non root:

  • chmod 660 mysql--directory dei dati
  • chmod 660 mysql-dati-directory/tableOfData.frm
0

Questo errore, "Errore generale: 1017 Impossibile trovare il file", si verificava anche su Windows con WAMP se la tabella non esiste.

0

prova a seguire le cose:

  • riparazione intero database
  • cambiamento autorizzazione a mysql: mysql
  • servizio restart mysql

Uno di questi funzionerà.

+0

Questa domanda ha cinque anni ... Sento che la tua soluzione potrebbe essere migliore ... – JustCarty

+0

Sì, ma ho avuto questo problema e il servizio di riavvio ha funzionato per me. Molti di noi sanno come fare quanto sopra, quindi è solo un suggerimento. –

Problemi correlati