Autore Topic: MySQL e database  (Letto 3924 volte)

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
MySQL e database
« il: 20 Ottobre 2013, 17:38:57 »
Ciao,
mySQL memorizza il contenuto di un database in qualche file? C'è modo per trovarlo ed eventualmente spostarlo su un'altra istanza/macchina?

Il problema è che:
1) Computer 1 - MySQL Server è sparito/non si avvia più e quindi non posso fare un detach/export del database da strumenti come MySQL WorkBench (in questo caso potrei provare a reinstallare il server? Corro il rischio che cancelli tt i database?)
2) Computer 2 - Ho installato Win 8.1 RTM sopra Win 8.1 Prerelease e (come già sapevo, ma per distrazione l'ho fatto!) ho perso l'installazione di MySQL.
Claudio CP La Rosa

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:MySQL e database
« Risposta #1 il: 20 Ottobre 2013, 22:17:24 »
Purtroppo di default quelle amebe hanno impostato la cartella dei file del db dentro quella dell'installazione di MySQL. Controlla al suo interno. Troverai un file mysql.ini. Aprilo. Cerca una riga con datadir (mi pare): punta alla cartella in cui il server piazza TUTTI i file e cartelle del db. Ti basta ricopiarla integralmente.
Io la mia l'ho messa in D:\MySQL, per sicurezza & comodità, cambiando mysql.ini, ma occhio che si deve fare col servizio fermato.

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re:MySQL e database
« Risposta #2 il: 20 Ottobre 2013, 23:16:48 »
Purtroppo di default quelle amebe hanno impostato la cartella dei file del db dentro quella dell'installazione di MySQL. Controlla al suo interno. Troverai un file mysql.ini. Aprilo. Cerca una riga con datadir (mi pare): punta alla cartella in cui il server piazza TUTTI i file e cartelle del db. Ti basta ricopiarla integralmente.
Io la mia l'ho messa in D:\MySQL, per sicurezza & comodità, cambiando mysql.ini, ma occhio che si deve fare col servizio fermato.

Allora, ho trovato il file mysql sotto c:\program data.

Al suo interno c'era la riga:

# Path to the database root
datadir="C:\ProgramData\MySQL\MySQL Server 5.6\data\"

(ProgramData è nascosta di default sul mio sistema Win8.1)

Sono andato nella cartella indicata e ho trovato tutto! :D
Adesso provo a copiarlo e portarlo su una installazione funzionante.

Cesare... ti darei un bacio!! :D

« Ultima modifica: 20 Ottobre 2013, 23:20:58 da clros »
Claudio CP La Rosa

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:MySQL e database
« Risposta #3 il: 21 Ottobre 2013, 06:41:36 »
Mi fai passare la voglia di risponderti :-\  ;D
Comunque ricordati che usando versioni diverse di MySQL potresti avere problemi a causa di cambiamenti nella struttura interna del database.

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re:MySQL e database
« Risposta #4 il: 27 Ottobre 2013, 08:24:14 »
Mi fai passare la voglia di risponderti :-\  ;D
Comunque ricordati che usando versioni diverse di MySQL potresti avere problemi a causa di cambiamenti nella struttura interna del database.

In effetti credo che adesso il problema sia questo; l'attuale versione di MySQL mi riconosce le tabelle (mi dice che ci sono) ma non posso vedere e manipolare la loro struttura e i dati contenuti. A questo c'è una soluzione? (tra l'altro, non ricordo nemmeno che versione ho usato per creare quelle tabelle :/)
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:MySQL e database
« Risposta #5 il: 27 Ottobre 2013, 09:06:57 »
puoi installare una versione "identica" di MySQL, importare questi dati, fare un bel mysqldump per salvarli come script SQL, poi installare la versione desiderata di MySQL e reimportarli.

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:MySQL e database
« Risposta #6 il: 27 Ottobre 2013, 09:08:15 »
Se non ti ricordi nemmeno qual è diventa difficile. Però se hai conservato la vecchia cartella di MySQL potresti vedere dall'eseguibile la versione. Reinstallala da qualche parte, copiagli la datadir, fai il backup, e poi il restore sulla nuova versione.
Se hai molti dati c'è un'opzione nell'esportazione per ottimizzare le insert.
Se usi foreign key ce n'è un'altra per disabilitarle temporaneamente, altrimenti è impossibile fare il restore perché MySQL ordina la tabelle fottendosene delle dipendenze...

Tags: