phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Passaggio da db con MySQL: 4.0.30 a db con 5.0.92

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
cicocri
Utente
Utente
Messaggi: 13
Iscritto il: 04/07/2011, 0:37
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.2.17
Database: MySQL(i) 5.0.92-enterprise-gpl-log
Località: Forli
Contatta:

Passaggio da db con MySQL: 4.0.30 a db con 5.0.92

Messaggio da cicocri » 12/10/2012, 0:24

Salve a tutti ragazzi, devo effettuare questo passaggio, ed ho provato in vari modi, il db (non compresso) su piattaforma MySQL: 4.0.30 è di 140Mb, l'ho salvato in 3 parti (una sola mi va in timeout in caricamento sia da phpbb che da mysql di Aruba), ripristino i 3 pezzi del database (utilizzando Modalitá di compatibilità SQL: mysql40) ma mi risulta su MySQL: 5.0.92 di ben 160 Mb, e tutto, una volta cambiato i parametri in config.php, sembra ok, invece se provo ad effettuare una risposta in un post mi viene fuori l'errore:

Codice: Seleziona tutto

SQL ERROR [ mysql4 ]

Field 'post_edit_reason' doesn't have a default value [1364]

SQL

INSERT INTO phpbb_posts (forum_id, poster_id, icon_id, poster_ip, post_time, post_approved, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_locked, topic_id) VALUES (16, 76, 0, '87.19.32.203', 1349992465, 1, 1, 1, 1, 1, '', 'Re: Attivazione account e futuro', 'prova', '189bbbb00c5f1fb7fba9ad9285f193d1', 0, '', 'rl0160zy', 1, 0, 3857)

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()

FILE: [ROOT]/includes/db/mysql.php
LINE: 175
CALL: dbal->sql_error()

FILE: [ROOT]/includes/functions_posting.php
LINE: 2000
CALL: dbal_mysql->sql_query()

FILE: [ROOT]/posting.php
LINE: 1134
CALL: submit_post()
Prima di perderci ulteriore tempo, cercando nel web chiedo a voi lumi.... ho cercato nel forum ma invano.
Per chiarezza:
Il forum non è stato spostato di host.
Ho provato anche effettuando backup dalla piattaforma phpbb e ripristinandole nell'altro database (sempre in 3 parti) ma stesso risultato.

Grazie mille per l'attenzione,
Cristian.
Non trovare difetti, trova rimedi e provvedi se puoi....

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Passaggio da db con MySQL: 4.0.30 a db con 5.0.92

Messaggio da Micogian » 12/10/2012, 6:48

Prima di tutto bisogna considerare che la tabella più grossa di solito è "posts".
Quando faccio un backup io lo faccio sempre in tre parti. uno per le tabelle fino a "post" esclusa", un secondo backup per quelle successive e un copio per la sola tabella "posts". A volte divido la tabella in più parti, a blocchi di records.
Mai avuto un problema.
Nel tuo INSERT c'è una incongruenza, manca il campo 'post_edit_reason' ed è questo l'errore che ti viene segnalato.
E' probabile che nella struttura della tabella il suddetto campo richieda un valore, cosa che la query non fa.
In sostanza la tabella di origne non è uguale alla tabella di destinazione, manca il campo 'post_edit_reason'

cicocri
Utente
Utente
Messaggi: 13
Iscritto il: 04/07/2011, 0:37
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.2.17
Database: MySQL(i) 5.0.92-enterprise-gpl-log
Località: Forli
Contatta:

Re: Passaggio da db con MySQL: 4.0.30 a db con 5.0.92

Messaggio da cicocri » 12/10/2012, 21:35

Ti ringrazio per la risposta, ho provato anche l'importazione per metà della tabella post (con ben 41414 messaggi) ma nulla, comunque ho analizzato la tabella post ed ho trovato diverse inconguenze:

Questa la struttura:

CREATE TABLE IF NOT EXISTS `phpbb_posts` (
`post_id` mediumint(8) unsigned NOT NULL auto_increment,
`topic_id` mediumint(8) unsigned NOT NULL default '0',
`forum_id` mediumint(8) unsigned NOT NULL default '0',
`poster_id` mediumint(8) unsigned NOT NULL default '0',
`icon_id` mediumint(8) unsigned NOT NULL default '0',
`poster_ip` varchar(40) binary NOT NULL default '',
`post_time` int(11) unsigned NOT NULL default '0',
`post_approved` tinyint(1) unsigned NOT NULL default '1',
`post_reported` tinyint(1) unsigned NOT NULL default '0',
`enable_bbcode` tinyint(1) unsigned NOT NULL default '1',
`enable_smilies` tinyint(1) unsigned NOT NULL default '1',
`enable_magic_url` tinyint(1) unsigned NOT NULL default '1',
`enable_sig` tinyint(1) unsigned NOT NULL default '1',
`post_username` blob NOT NULL,
`post_subject` text NOT NULL,
`post_text` mediumtext NOT NULL,
`post_checksum` varchar(32) binary NOT NULL default '',
`post_attachment` tinyint(1) unsigned NOT NULL default '0',
`bbcode_bitfield` varchar(255) binary NOT NULL default '',
`bbcode_uid` varchar(8) binary NOT NULL default '',
`post_postcount` tinyint(1) unsigned NOT NULL default '1',
`post_edit_time` int(11) unsigned NOT NULL default '0',
`post_edit_reason` blob NOT NULL,
`post_edit_user` mediumint(8) unsigned NOT NULL default '0',
`post_edit_count` smallint(4) unsigned NOT NULL default '0',
`post_edit_locked` tinyint(1) unsigned NOT NULL default '0',

Ho rimarcato 2 campi che, nel database con vecchio mysql 4 sono colonne o vuote o ricoperte da, la prima l'userneme del "postante" la seconda vuota.
Quando ripristino il database su mysql 5 questi due colonne prendono il valore [BLOB - OB] ecco perché l'erore di sintassi sbagliata.

Ho provato ad aggingere alle due righe da:

`post_username` blob NOT NULL,
`post_edit_reason` blob NOT NULL,

A:

`post_username` blob NOT NULL, default ''
`post_edit_reason` blob NOT NULL, default ''

Ma nulla mi riporta [BLOB - OB] e non l'eventuale spazio vuoto.
Consigli?

Sicuramente ci sarà la strada di portare i valori corretti (magari sostituire i blob con `post_subject` text NOT NULL,) ma mi sorge il dubbio che dovrò ricontrollare tutto il database in tutte le sue colonne oppure c'è una utility per esportazione e importazione che mi possa risolvere il problema?
Non trovare difetti, trova rimedi e provvedi se puoi....

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Passaggio da db con MySQL: 4.0.30 a db con 5.0.92

Messaggio da Micogian » 12/10/2012, 22:00

Qui bisogna capire prima di tutto se il database originale è corretto. Fai un ripara tabelle da phpmyadmin e poi riprova a esportarlo in più parti, di 20-25000 record ciascuno.
Io ho una tabelal posts di 236000 records, a gruppi di 25000 non ho problemi, di più si.

cicocri
Utente
Utente
Messaggi: 13
Iscritto il: 04/07/2011, 0:37
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.2.17
Database: MySQL(i) 5.0.92-enterprise-gpl-log
Località: Forli
Contatta:

Re: Passaggio da db con MySQL: 4.0.30 a db con 5.0.92

Messaggio da cicocri » 12/10/2012, 23:24

Riparata la tabella di origine con notevole cali di Mb, verificato buon funzionamento della stessa, carifcata nel nuovo database, purtroppo stesso problema di prima, comunque ho chiesto supporto anche ad Aruba, sai mai che gli sia già capitato.

Nel caso proverò anche una conversione da 4 a 5 tramite convertitore Db.
Non trovare difetti, trova rimedi e provvedi se puoi....

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti