errore in importazione tabelle mysql

14 contenuti / 0 new
Ultimo contenuto
Anonimo (non verificato)
Ritratto di Anonimo
errore in importazione tabelle mysql

Continuano i miei disperati tentativi di installazione di drupal.
Ora il problema è durante l'importazione del file database.mysql, ovvero nella creazione delle tabelle del database.
Il sistema dà errore nella creazione della tabella blocks, più precisamente sembra disturbato dalla presenza del campo types (infatti rimuovendolo il processo di importazione delle tabelle va a buon fine, altrimenti si arresta alla tabella authmap, quella precedente blocks).
Come dicevo, rimuovendo il campo l'importazione funziona, ma temo questo possa compromettere il funzionamento corretto del sistema. Come devo fare?
Grazie di nuovo

flavia

flavia (non verificato)
Ritratto di Anonimo

preciso che ora la home page viene visualizzata correttamente per la configurazione di drupal; procedo nonostante il campo mancante?

Flavia, per importazionme, intendi l'installazione iniziale di mysql ??
Certo senza quel campo, incontrerai dei problemi...
che strumento stai utilinnado come client mysql ???
E poi, che errore ti ha dato mysql ?? che versione stai usando ??
scusa le domande, ma non è facile altrimenti aiutarti....

Matteo

No anzi scusa se ero stata poco dettagliata...
Per importazione intendo non l'installazione del MySQL, gia' presente sul server che sto usando, ma il caricamento delle tabelle dal file drupal/database/database.mysql (punto 3 delle istruzioni per l'installazione di drupal).
Non uso un particolare client, opero direttamente da riga di terminale; l'errore mysql lo riscontrava alla riga 120 del file database.mysql,
CREATE TABLE blocks (
module varchar(64) DEFAULT '' NOT NULL,
delta varchar(32) NOT NULL default '0',
status tinyint(2) DEFAULT '0' NOT NULL,
weight tinyint(1) DEFAULT '0' NOT NULL,
region tinyint(1) DEFAULT '0' NOT NULL,
custom tinyint(2) DEFAULT '0' NOT NULL,
throttle tinyint(1) DEFAULT '0' NOT NULL,
visibility tinyint(1) DEFAULT '0' NOT NULL,
pages text NOT NULL,
types text NOT NULL
) TYPE=MyISAM;

eliminando la riga types text NOT NULL l'errore non sussiste piu' e l'importazione avviene con successo.
La versione di MySQL con cui sto lavorando e' la 4.1.1.
Ho provato anche a ricreare il campo all'interno della tabella ma non e' possibile, probabilmente perche' types e' un comando e non puo' essere usato come nome campo?
Come posso fare?
GRAZIE!!!

f

flavia,
ho provato su una mysql 4.10 (non so se la 4.1.1 è diversa..) e non ho alcun problema.
Comunque, se il problema è una parola chiave, prova la seguente sintassi:

CREATE TABLE `blocks` (
`module` varchar(64) NOT NULL default '',
`delta` varchar(32) NOT NULL default '0',
`status` tinyint(2) NOT NULL default '0',
`weight` tinyint(1) NOT NULL default '0',
`region` tinyint(1) NOT NULL default '0',
`custom` tinyint(2) NOT NULL default '0',
`throttle` tinyint(1) NOT NULL default '0',
`visibility` tinyint(1) NOT NULL default '0',
`pages` text NOT NULL,
`types` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Fammi sapere se funziona.

Matteo

Ho cancellato tutte le tabelle e provato a importare nuovamente il file aggiungendo gli apici, mi da' ancora errore:

ERROR 1064 at line 120: You have an error in your SQL syntax. Check the manual
orresponds to your MySQL server version for the right syntax to use near 'ENGINE
M DEFAULT CHARSET=utf8'

L'importazione si blocca alla tabella authmap (quella precedente blocks, dove viene riscontrato l'errore)

Strano, il comando è stato generato dal client che uso per dare i comandi a mysql (SQLYOG) dopo avere create la tabella.
Puoi fare un'ultima prova ?? Usa la sintassi di prima, usando gli apici intorno alla parola types:

CREATE TABLE `blocks` (
`module` varchar(64) NOT NULL default '',
`delta` varchar(32) NOT NULL default '0',
`status` tinyint(2) NOT NULL default '0',
`weight` tinyint(1) NOT NULL default '0',
`region` tinyint(1) NOT NULL default '0',
`custom` tinyint(2) NOT NULL default '0',
`throttle` tinyint(1) NOT NULL default '0',
`visibility` tinyint(1) NOT NULL default '0',
`pages` text NOT NULL,
`types` text NOT NULL
) TYPE=MyISAM;

Matteo

ho ritentato, ora dice
ERROR 1064 at line 120: You have an error in your SQL syntax. Check the manual
orresponds to your MySQL server version for the right syntax to use near ''block
'module' varchar(64) NOT NULL default '',
'delta' va

considera che se rinomino types (ad esempio) in tipes non mi da' piu' nessun errore e importa tutto correttamente...

Flavia,
ho fatto qualche ricerca, ed effettivamente quello che ti ho proposto di fare è la soluzione (ahimè parziale) al problema, e deve funzionare (se usi l'apicino storto dell'esempio, provato proprio ora su MySQL 4.0, ma non via command line).

La soluzione completa è suggerita qui:
http://drupal.org/node/21404
In sostanza, devi usare gli apici dovunque viene usata la parola types (nel database e nel modulo block)

Esiste anche una fix specificata qui:
http://drupal.org/node/16817
che in sostanza cambia la parola types in nodes, ma non mi risulta sia già stata inserita nella distribuzione standard.

L'alternativa è quella di usare MySQL 3.23....

Fammi sapere...

Come consiglio, usa prodotti come MySQL Front (client Mysql) invece della command line.

Matteo

Grazie mille per il prezioso aiuto e i rimandi, ho provato ad adottare la soluzione suggerita di rinominare 'types' in 'nodes' applicando le modifiche contenute nelle patches segnalate in http://drupal.org/node/16817
Ora provo a procedere con l'installazione e vediamo che succede, per ora sembra tutto a posto se non intervengono casini in fase successiva.
Nel frattempo ancora grazie!

f

Sono molto contento. Una mano non si nega mai, soprattutto ad una fanciulla :-)
Non dovresti avere grossi problemi con la 4.6.2, soprattuto se parti da zero, comunque, non ti fare scrupoli, e soprattutto, quando sei online, facci sapere della tua opera !

Matteo

provate ad esportare e reimportare la tabella cahce_menu ... la esporta ... poi quando la importa, pur mantenendo il collate ( MySQL 5 etc ) non c'è verso di riempirla ... crasha in continuazione con un pretesto o con un altro ... sono quattro giorni che ci sto lavorando ... ormai sono alla conclusione che questi sistemi hanno un'affidabilità alquanto dubbia ma che non c'è altro :-/
-Tiziano-

Le tabelle di cache hanno esistenza locale all'applicazione, non ha senso esportarle e reimportarle.
L'importante è che esistano come strutture dati. Poi ci pensa Drupal a riempirle, svuotarle e così via...

Se forzi questo meccanismo, accade proprio quello che lamenti.

Per partire da una soluzione pulita, installa il modulo devel e poi procedi clickando sul link di svuotamento della cache. Questo modulo fa un lavoro davvero pulito!