- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Mysqlhotcopy
-
Hai provato ad aggiungere --allowold alla fine della riga?
Io lo uso in questo modomysqlhotcopy database /home/mysql/backup/ --password=XXXXXX --allowold
e funziona
-
Grazie per la risposta.
In questo modo però fai un semplice backup.
Quello che servirebbe a me e copiare i contenuti del DATABASE_1 all'interno del DATABASE_2 e possibilmente nella directory /var/lib/mysql/DATABASE_2 dove posso richiamarlo.Non hai mai fatto una prove del genere?
-
Non l'ho mai fatto ma penso sia la stessa cosa, non dovrebbe cambiare molto.
Ci sarà da fare attenzione ai permessi dei files
-
Infatti mi viene restituita questa risposta....
mysqlhotcopy DATABASE_1 /var/lib/mysql/DATABASE_2 -u nomeutenteD1 -p passwordD1 --allowold
Deleting previous 'old' hotcopy directory ('/var/lib/mysql/DATABASE_2/DATABASE_1_old')
Existing hotcopy directory renamed to '/var/lib/mysql/DATABASE_2/DATABASE_1_old'
Locked 10 tables in 0 seconds.
DBD::mysql::db do failed: Access denied; you need the RELOAD privilege for this operation at /usr/bin/mysqlhotcopy line 477.
Sincermente non sò quali permessi e come impostarli...
-
O esegui l'operazione come root oppure usando un tool tipo phpmyadmin vai in privilegi e concedi il permesso di RELOAD all'utente in questione
-
Scusa ma non sono molto esperto...
In pratica intendi che devo fare cosi:
mysqlhotcopy DATABASE_1 /var/lib/mysql/DATABASE_2 -u root -p passwordD1 --allowold
-
Credo di aver capito il funzionamento infatti ora mi esegue la copia ma ho ancora un piccolo problema... che in pratica risulta essere i l più grande.
Fatta la copia non riesco a vedere il risultato se non riavvio Mysql.
Mi spiego meglio.Se mi collego al DATABASE_2 con un qualsiasi file in php non vedo gli aggiornamenti effettuari fino a quando non viene riavviato mysql.
Come posso risolvere quest'ultimo problema?
-
Scusa se intervengo ancora ma in pratica non vede l'aggiornamento perche non vengono copiate solo le tabelle del DATABASE_1 all'interno del DATABASE_2 ma tutto il DATABASE_1
ed ottengo questo: /var/lib/mysql/DATABASE2/DATABASE1/tabelle
invece dovrei avere: /var/lib/mysql/DATABASE2/tabelle
Esiste un modo per superare questo ostacolo?
Grazie ancora...
-
Mi sa che in questo modo non puoi fare in quanto il comando in automatico crea la cartella DATABASE_1
A questo punto puoi provare con rsync, e fare qualcosa del genere
rsync -a -v --delete /var/lib/mysql/DATABASE_1 /var/lib/mysql/DATABASE_2
-
Ho gia provato con questo comando:
rsync -auv --delete /var/lib/mysql/DATABASE_1/* /var/lib/mysql/DATABASE_2/
La copia viene eseguita perfettamente ma in pratica non vedo gli aggiornamenti fino a quando non riavvio mysql.
Si può superare questo problema?
Fra -auv --delete e -a -v --delete
che differenza c'è?