- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Passaggio da MySQL: 4.00.24 a MySQL: 5
-
Passaggio da MySQL: 4.00.24 a MySQL: 5
Salve ho installato tempo fa joomla su un database MySQL: 4.00.24 ed adesso devo passare a MySQL: 5.
Mi potete indicare la strada migliore?
Premetto che sono un principiante di MySQL
-
Non ci sono problemi di incompatibilita per il passaggio da MySQL v4 a v5.
I tool per eseguire i dump del DB sono numerosi, uno molto utilizzato è phpMyAdmin, altrimenti puoi usare i comandi di sistema:Esporta:
mysqldump -p --opt nomedb > dump.sqlImporta:
mysqladmin -p drop nomedb
mysqladmin -p create nomedb
mysql -p -D nomedb < dump.sqCiao!
-
Scusami l'host vecchio mi mette a disposizione
Versione MySQL: 4.00.24
Versione PHP: 4.3.5
phpMyAdmin MySQL-Dump
version 2.2.6
Quindi faccio l'esportazione struttura e dati e poi l'importo sul nuovo server che invece ha
-- phpMyAdmin SQL Dump
-- version 3.1.2
-- Versione MySQL: 5.0.67
-- Versione PHP: 5.2.8Alcune tabelle le importa senza problemi altre invece mi da il seguente errore
Errore
**query SQL:** # --------------------------------------------------------
Struttura della tabella
fok_acajoom_stats_details
CREATE TABLE fok_acajoom_stats_details(id int( 11 ) NOT NULL AUTO_INCREMENT ,
mailing_id int( 11 ) NOT NULL default '0',
subscriber_id int( 11 ) NOT NULL default '0',
sentdate datetime NOT NULL default '0000-00-00 00:00:00',
html tinyint( 1 ) NOT NULL default '0',
READ tinyint( 1 ) NOT NULL default '0',
PRIMARY KEY ( id ) ,
UNIQUE KEY sub_mail( mailing_id, subscriber_id )
) TYPE = MYISAM ;**Messaggio di MySQL: **
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read tinyint(1) NOT NULL default '0',
PRIMARY KEY (id),
UNIQUE KEY sub_ma' at line 7E non so francamente dove mettere le mani.
-
Prova questa modifica:
...
sentdate datetime NOT NULL default '1000-01-01 00:00:00'
...Il range di datatime va da '1000-01-01 00:00:00' a '9999-12-31 23:59:59'.
Oppure prova con ENGINE = MyISAM;
Altra cosa, cancella i commenti con # e utilizza --
-
**continua a darmi
**Errore
**query SQL:** -- --------------------------------------------------------
--
-- Struttura della tabellafok_acajoom_stats_details
CREATE TABLE fok_acajoom_stats_details(id int( 11 ) NOT NULL AUTO_INCREMENT ,
mailing_id int( 11 ) NOT NULL default '0',
subscriber_id int( 11 ) NOT NULL default '0',
sentdate datetime NOT NULL default '1000-01-01 00:00:00',
html tinyint( 1 ) NOT NULL default '0',
READ tinyint( 1 ) NOT NULL default '0',
PRIMARY KEY ( id ) ,
UNIQUE KEY sub_mail( mailing_id, subscriber_id )
) TYPE = MYISAM ;**Messaggio di MySQL: **
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read tinyint(1) NOT NULL default '0',
PRIMARY KEY (id),
UNIQUE KEY sub_ma' at line 10
-
Ciao,
READ viene interpretato non come un nome di colonna, ma come una parola chiave di MySql e genera quindi l'errore.
Edita il file sql e usa i backquotes per identificare la colonna:`read`
Alessandro
-
NON CAPISCO
DI SEGUITO IL TESTO DELLA TABELLA DIMMI LA SOSTITUZIONE DA FARE QUAL'E'--
-- Struttura della tabellafok_acajoom_stats_details
CREATE TABLE fok_acajoom_stats_details (
id int(11) NOT NULL auto_increment,
mailing_id int(11) NOT NULL default '0',
subscriber_id int(11) NOT NULL default '0',
sentdate datetime NOT NULL default '1000-01-01 00:00:00',
html tinyint(1) NOT NULL default '0',
read tinyint(1) NOT NULL default '0',
PRIMARY KEY (id),
UNIQUE KEY sub_mail (mailing_id,subscriber_id)
) TYPE=MyISAM;GRAZIE
-
CREATE TABLE fok_acajoom_stats_details ( id int(11) NOT NULL auto_increment, mailing_id int(11) NOT NULL default '0', subscriber_id int(11) NOT NULL default '0', sentdate datetime NOT NULL default '1000-01-01 00:00:00', html tinyint(1) NOT NULL default '0', `read` tinyint(1) NOT NULL default '0', PRIMARY KEY (id), UNIQUE KEY sub_mail (mailing_id,subscriber_id) ) TYPE=MyISAM;
-
oK GRANDE ADESSO HO UN'ALTRA TABELLA
Errore
**query SQL:** -- --------------------------------------------------------
--
-- Struttura della tabellafok_components
CREATE TABLE fok_components(id int( 11 ) NOT NULL AUTO_INCREMENT ,
name varchar( 50 ) NOT NULL default '',
link varchar( 255 ) NOT NULL default '',
menuid int( 11 ) unsigned NOT NULL default '0',
parent int( 11 ) unsigned NOT NULL default '0',
admin_menu_link varchar( 255 ) NOT NULL default '',
admin_menu_alt varchar( 255 ) NOT NULL default '',
OPTION varchar( 50 ) NOT NULL default '',
ordering int( 11 ) NOT NULL default '0',
admin_menu_img varchar( 255 ) NOT NULL default '',
iscore tinyint( 4 ) NOT NULL default '0',
params text NOT NULL ,
enabled tinyint( 4 ) NOT NULL default '1',
PRIMARY KEY ( id ) ,
KEY parent_option( parent, OPTION ( 32 ) )
) TYPE = MYISAM ;**Messaggio di MySQL: **
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option varchar(50) NOT NULL default '',
ordering int(11) NOT NULL default '0'' at line 12
-
E' lo stesso tipo di errore. non puoi usare nomi di colonne che corrispondono a parole chiave di MySql. Per farlo devi inserire il nome tra i backquotes come per READ nel caso precedente.
Il messaggio di errore ti segnala perfettamente qual è il campo della tabella "incriminato": in questo caso è option.Per evitare di dover correggere ogni tabella a mano, genera il file di backup con i backquotes già inseriti aggiungendo l'opzione --quote-names a mysqldump:
mysqldump -p --opt --quote-names nomedb > dump.sql
Alessandro
-
Grazie ho risolto tutto come hai detto tu.
Non so come ringraziarti ma ti ringrazio.
Ciao