Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Mysqlhotcopy
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      matrixman User Attivo • 19 ott 2009, 17:52 ultima modifica di

      Mysqlhotcopy

      Ciao ragazzi!
      Scrivo qui perchè spero di avere al soluzione ad un problema che mi affligge da un bel pò di giorni.

      In pratica stò cercando di effettuare la copia di un database sul server utilizzando i comandi che ho a disposizione e di utilizzare la copia per prelevare dati.

      Ho due database: DATABASE_1 E DATABASE_2

      Ho provato vari strumenti fra cui cp -r , rsync , mysqldump e ripristino con mysql ed ora sto provando con il MYSQLHOTCOPY

      Al momento applico questa procedura:

      1. creo DATABASE_2 e imposto nome utente e password (DATABASE_1 è gia attivo)
      2. applico la seguente procedura:

      mysqlhotcopy DATABASE_1 /var/lib/mysql/DATABASE_2 -u nomeutenteD1 -p passwordD1

      per D1 intendo nome utente e password del DATABASE_1

      Avvio la procedura e in risposta mi viene restituito:

      Can't hotcopy to '/var/lib/mysql/DATABASE_2/DATABASE_1' because directory
      already exist and the --allowold or --addtodest options were not given.

      Cosa devo fare? Io ormai sono nel pallone.... :dull:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
        Caricamento altri post
        Rispondi
        • Topic risposta
        Effettua l'accesso per rispondere
        • Da Vecchi a Nuovi
        • Da Nuovi a Vecchi
        • Più Voti
         

      • G
        gorka Super User • 20 ott 2009, 06:20 ultima modifica di

        Hai provato ad aggiungere --allowold alla fine della riga?
        Io lo uso in questo modo

        mysqlhotcopy database /home/mysql/backup/ --password=XXXXXX --allowold

        e funziona

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • M
          matrixman User Attivo • 20 ott 2009, 08:23 ultima modifica di

          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?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • G
            gorka Super User • 20 ott 2009, 09:13 ultima modifica di

            Non l'ho mai fatto ma penso sia la stessa cosa, non dovrebbe cambiare molto.
            Ci sarà da fare attenzione ai permessi dei files

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              matrixman User Attivo • 20 ott 2009, 09:45 ultima modifica di

              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...

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • G
                gorka Super User • 20 ott 2009, 09:51 ultima modifica di

                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

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • M
                  matrixman User Attivo • 20 ott 2009, 10:55 ultima modifica di

                  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

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • M
                    matrixman User Attivo • 20 ott 2009, 11:17 ultima modifica di

                    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?

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      matrixman User Attivo • 20 ott 2009, 12:19 ultima modifica di

                      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...

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • G
                        gorka Super User • 24 ott 2009, 07:58 ultima modifica di

                        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

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • M
                          matrixman User Attivo • 24 ott 2009, 08:40 ultima modifica di

                          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'è?

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          Caricamento altri post
                          Rispondi
                          • Topic risposta
                          Effettua l'accesso per rispondere
                          • Da Vecchi a Nuovi
                          • Da Nuovi a Vecchi
                          • Più Voti