Back to top

Autore Topic: Esportazione/Importazione DB [RISOLTO]  (Letto 4854 volte)

Offline francofadda

  • Esploratore
  • **
  • Post: 159
    • Mostra profilo
Esportazione/Importazione DB [RISOLTO]
« il: 08 Mar 2012, 19:01:56 »


Ciao  tutti
Ho un problema di importazione di un db attraverso PhpMyadmin necessario per il trasferimento di un sito Joomla 1.7 da un Host ad un'altro.
Posto qui di seguito il messaggio di errore generato dall'operazione di importazione.
 
Faccio presente che le tabelle di nome  upm0h_TeraWurflxxx sono relativa ad una estensione installata recentemente che oltretutto ha fatto lievitare il db a circa 26 Mb (per me senza precedenti).
Ho provato a disinstallare tale applicazione e a ripulire la cache in Joomla ma le relative tabelle nel DB non vengono eliminate; allora ho selezionato tutte le tabelle da esportare manualmente evitando accuratamente quelle con il nome upm0h_TeraWurflxxx ma nel messaggio di errore compare ancora un riferimento a TeraWurflxxx ecc. che sembra essere responsabile del blocco. E sembrerebbe essere una questione di privilegi; qualche consiglio per bypassare il problema? eventualmente su quali permessi telle tabelle dovrei intervenire?
Grazie

[/code]
Codice: [Seleziona]
Errore Query SQL:
--
-- Database: `Sql502865_2`
--
DELIMITER $$--
-- Procedure
--
CREATE DEFINER = `Sql502865`@`%` PROCEDURE `upm0h_TeraWurfl_FallBackDevices` ( current_fall_back VARCHAR( 64 ) ) BEGIN WHILE current_fall_back != 'root' DO SELECT capabilities
FROM upm0h_TeraWurflMerge
WHERE deviceID = current_fall_back;

SELECT fall_back
FROM upm0h_TeraWurflMerge
WHERE deviceID = current_fall_back
INTO current_fall_back;

END WHILE;

END$$
Messaggio di MySQL:
#1227 - Access denied; you need the SUPER privilege for this operation
« Ultima modifica: 11 Mar 2012, 00:32:15 da francofadda »

Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #1 il: 08 Mar 2012, 19:17:29 »
Prova a vedere se ci sono ancora riferimenti al componente incriminato nelle tabelle __extensions e __assets
Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

Offline francofadda

  • Esploratore
  • **
  • Post: 159
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #2 il: 08 Mar 2012, 19:34:37 »
Prova a vedere se ci sono ancora riferimenti al componente incriminato nelle tabelle __extensions e __assets




così a occhio direi di no; nel senso che non vedo ricorrere quel nome. Comunque MySql non è il mio pane quotidiano, non so quindi se me la sentirei di smanettare nelle tabelle :o . Se ci fosse una relazione "occulta" tra le tabelle sarei il meno adatto ad intervenire :(

Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #3 il: 08 Mar 2012, 22:38:34 »
.... Comunque MySql non è il mio pane quotidiano....

Allora siamo in due ! :)

Hai visto bene il file sql generato da phpmyadmin cosa contiene ? Molto probabilmente l' errore è li. Questa parte, per esempio, mi sembra un pò sospetta.
Codice: [Seleziona]
CREATE DEFINER = `Sql502865`@`%` PROCEDURE `upm0h_TeraWurfl_FallBackDevices` ( current_fall_back VARCHAR( 64 ) ) BEGIN WHILE current_fall_back != 'root' DO SELECT capabilities
FROM upm0h_TeraWurflMerge
WHERE deviceID = current_fall_back;

SELECT fall_back
FROM upm0h_TeraWurflMerge
WHERE deviceID = current_fall_back
INTO current_fall_back;

END WHILE;

Sembra che sul file ci siano direttive di creazione di una procedura.   Sql502865 è presumo il nome del db (che ovviamente dovrà essere il nome di quello nuovo) mentre il carattere % tra gli apici dovrebbe essere il nome dell' utente del db. Per caso, l' utente mysql sul "vecchio" db era root ?

Personalmente , quando genero un file con phpmyadmin per esportare un db joomla, non mi è mai capitato di trovarci dentro la creazione di una PROCEDURE ma solo sostanzialmente delle CREATE TABLE IF NOT EXISTS seguite da evetuali INSERT INTO.





 
Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

Offline francofadda

  • Esploratore
  • **
  • Post: 159
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #4 il: 10 Mar 2012, 13:17:14 »
ti ringrazio per l'indicazione e mi scuso per  il ritardo della risposta. Da ciò che dici deduco di potere intervenire su PhpMyadmin in fase di esportazione. In effetti ho sempre esportato con le impostazioni di default ma ho visto che è possibile spuntare o despuntare vari opzioni per un esportazione "personalizzata" :o


p.s. scusa ma ti ho rubato la bellissima frase di Darwin per utilizzarla come stato su fb :)

Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #5 il: 10 Mar 2012, 14:26:55 »
...non è mia e di Darwin quindi.... ;D

In teoria si, potrebbe dipendere dalle opzioni di esportazione di phpmyadmin però è strano.

Di che estensione si tratta ? (se commerciale non la scrivere, è vietato su questo forum).

Comunque la cosa più importante e verificare cosa c'è dentro il file generato da phpmyadmin.
Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

Offline francofadda

  • Esploratore
  • **
  • Post: 159
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #6 il: 10 Mar 2012, 17:03:55 »
dovrebbe essere questa  http://www.mobilejoomla.com/ e la cito perché è free; in teoria non sarebbe neanche male come estensione! avevo anche tradotto tutti i file lingua per cui ho già l'interfaccia in italiano ma non ho avuto tempo e modo di testarla per bene.
un esempio di nomi di tabelle create:



upm0h_TeraWurfl_Android
upm0h_TeraWurfl_Apple
upm0h_TeraWurfl_BlackBerry
ecc.




Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #7 il: 10 Mar 2012, 19:22:24 »
Beccato.

Guarda un pò cosa contiene il file di installazione (e disinstallazione del componente) uninstal.mobilejoomla.php.

Codice: [Seleziona]
function terawurfl_install_procedure()
{
    /** @var JDatabase $db */
    $db =& JFactory::getDBO();

    if(version_compare($db->getVersion(), '5.0.0', '<'))
        return false;

    $TeraWurfl_RIS = "CREATE PROCEDURE `#__TeraWurfl_RIS`(IN ua VARCHAR(255), IN tolerance INT, IN matcher VARCHAR(64))
BEGIN
DECLARE curlen INT;
DECLARE wurflid VARCHAR(64) DEFAULT NULL;
DECLARE curua VARCHAR(255);

SELECT CHAR_LENGTH(ua)  INTO curlen;
findua: WHILE ( curlen >= tolerance ) DO
    SELECT CONCAT(LEFT(ua, curlen ),'%') INTO curua;
    SELECT idx.DeviceID INTO wurflid
        FROM #__TeraWurflIndex idx INNER JOIN #__TeraWurflMerge mrg ON idx.DeviceID = mrg.DeviceID
        WHERE mrg.match = 1 AND idx.matcher = matcher
        AND mrg.user_agent LIKE curua
        LIMIT 1;
    IF wurflid IS NOT NULL THEN
        LEAVE findua;
    END IF;
    SELECT curlen - 1 INTO curlen;
END WHILE;

SELECT wurflid as DeviceID;
END";
    $db->setQuery($TeraWurfl_RIS);
    $isSuccessful = $db->query();

    $TeraWurfl_FallBackDevices = "CREATE PROCEDURE `#__TeraWurfl_FallBackDevices`(current_fall_back VARCHAR(64))
BEGIN
WHILE current_fall_back != 'root' DO
    SELECT capabilities FROM #__TeraWurflMerge WHERE deviceID = current_fall_back;
    SELECT fall_back FROM #__TeraWurflMerge WHERE deviceID = current_fall_back INTO current_fall_back;
END WHILE;
END";
    $db->setQuery($TeraWurfl_FallBackDevices);
    $isSuccessful = $db->query() && $isSuccessful;

    return $isSuccessful;
}

Probabilmente la procedura di disinstallazione del componente contiene delle falle in quanto le "procedure" mysql non vengono rimosse (e nemmeno le tabelle).

Però , la funzione che rimuove i dati dal db c'è e sembra ok, sempre contenuta su uninstal.mobilejoomla.php.
Codice: [Seleziona]
function clear_terawurfl_db()
{
    /** @var JDatabase $db */
    $db =& JFactory::getDBO();
    $tables = array ('#__TeraWurflCache', '#__TeraWurflCache_TEMP', '#__TeraWurflIndex', '#__TeraWurflMerge',
                     '#__TeraWurflSettings',
                     '#__TeraWurfl_Alcatel', '#__TeraWurfl_Android', '#__TeraWurfl_AOL', '#__TeraWurfl_Apple',
                     '#__TeraWurfl_BenQ', '#__TeraWurfl_BlackBerry', '#__TeraWurfl_Bot', '#__TeraWurfl_CatchAll',
                     '#__TeraWurfl_Chrome', '#__TeraWurfl_DoCoMo', '#__TeraWurfl_Firefox', '#__TeraWurfl_Grundig',
                     '#__TeraWurfl_HTC', '#__TeraWurfl_Kddi', '#__TeraWurfl_Konqueror', '#__TeraWurfl_Kyocera',
                     '#__TeraWurfl_LG', '#__TeraWurfl_Mitsubishi', '#__TeraWurfl_Motorola', '#__TeraWurfl_MSIE',
                     '#__TeraWurfl_Nec', '#__TeraWurfl_Nintendo', '#__TeraWurfl_Nokia', '#__TeraWurfl_Opera',
                     '#__TeraWurfl_OperaMini', '#__TeraWurfl_Panasonic', '#__TeraWurfl_Pantech', '#__TeraWurfl_Philips',
                     '#__TeraWurfl_Portalmmm', '#__TeraWurfl_Qtek', '#__TeraWurfl_Safari', '#__TeraWurfl_Sagem',
                     '#__TeraWurfl_Samsung', '#__TeraWurfl_Sanyo', '#__TeraWurfl_Sharp', '#__TeraWurfl_Siemens',
                     '#__TeraWurfl_SonyEricsson', '#__TeraWurfl_SPV', '#__TeraWurfl_Toshiba', '#__TeraWurfl_Vodafone',
                     '#__TeraWurfl_WindowsCE');
    $query = 'DROP TABLE IF EXISTS `'.implode('`, `',$tables).'`';
    $db->setQuery($query);
    $db->query();
    if(version_compare($db->getVersion(), '5.0.0', '>='))
    {
        $db->setQuery("DROP PROCEDURE IF EXISTS `#__TeraWurfl_RIS`");
        $db->query();
        $db->setQuery("DROP PROCEDURE IF EXISTS `#__TeraWurfl_FallBackDevices`");
        $db->query();
    }
}

...ergo, ho non hai disinstallato correttamente il componente o la proc. di disinstallazione ha delle falle.

Rimuovi le "procedure" dal file sql generato da phpmyadmin e vedrai che tutto fila liscio.
Oppure, metti il nome giusto del nuovo db nel file sql generato da phpmyadmin , esporta anche le tabelle del componente e dovrebbe filare tutto liscio.

Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

Offline francofadda

  • Esploratore
  • **
  • Post: 159
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #8 il: 10 Mar 2012, 20:09:56 »
G  R  A  N  D  E !!!

Importazione eseguita con successo, 84 query eseguite. (Sql502865_2.sql)


Ho fatto la prima che hai detto: rimozione dello spezzone di codice relativo a "procedure"


grazie infinite!!!!!!!!!!!!!!!!!!!!!!!! :D

Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:Esportazione/Importazione DB
« Risposta #9 il: 10 Mar 2012, 22:05:45 »
Di nulla !

Ricordati di mettere [RISOLTO] nell' oggetto del post d' apertura.


Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

Offline francofadda

  • Esploratore
  • **
  • Post: 159
    • Mostra profilo
Re:Esportazione/Importazione DB [RISOLTO]
« Risposta #10 il: 11 Mar 2012, 00:35:17 »
Certo!
ciao e alla prossima ;)


 



Web Design Bolzano Kreatif