Ripristino installazione Drupal dopo cambio server dedicato
Ciao ragazzi,
premetto che mi sto avvicinando pian piano a Drupal, ho cambiato il database che ospitava il mio sito e adesso mi chiede di inserire le librerie PECL per visualizzare l'avanzamento del caricamento file, e di attivare il 4 byte UTF-8 for mysql perchè è disabilitato.
Mi date una mano a risolvere il problema?
Grazie.
Nico
| Allegato | Dimensione |
|---|---|
| FotoxDrupal-it.png | 90.63 KB |

Risposte
A parte i problemi con il
A parte i problemi con il dump che sono indipendenti da Drupal, è ottimo che tu abbia risolto l'errore bloccante di cui sopra. Il sito quindi è allineato?
Ciao Maurizio, l'errore è
Ciao Maurizio,
l'errore è risolto. Ti ringrazio moltissimo per il prezioso supporto, ho imparato molto.
L'ultima settimana di agosto mi consegnano il database quello che era on-line al 01/07/2017. Andro a caricare tutto, conservandomi questa versione che funziona. Ti farò sapere se tutto va bene.
Grazie ancora!
Buone vacanze.
Nico
Ciao Maurizio, ben
Ciao Maurizio, ben trovato.
Mi hanno consegnato il database al 30/06/2017.
Nel caricarlo ho avuto i seguenti errori:
Sono stati trovati 415 errori durante l'analisi.
Carattere inatteso. (near "" at position 36)
Carattere inatteso. (near "" at position 37)
Carattere inatteso. (near "" at position 38).......
.......
Inizio di statement inatteso. (near "nome_db" at position 0)
Inizio di statement inatteso. (near "-29" at position 21)
Inizio di statement inatteso. (near "-09" at position 24)
Inizio di statement inatteso. (near "-2017." at position 27)
Tipo statement non riconosciuto. (near "sql" at position 33)
Query SQL:
nome_db-29-09-2017.sql0000644000000000000000013145713113163465743015724 0ustar rootroot SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"
Messaggio di MySQL: Documentazione
#1064 - Errore di sintassi nella query SQL vicino a 'nome_db-29-09-2017.sql' linea 1
E' una cosa facilmente risolvibile?
Grazie.
NIco
Ciao, sembra che la prima
Ciao, sembra che la prima linea del file non contenga istruzioni sql valide. Prova a commentarla inserendo un -- ad inizio riga
--nome_db-29-09-2017.sql000064...SET SQL_MODE ...
...
e ripeti l'importazione
Ciao Maurizio, fatto e
Ciao Maurizio, fatto e rimportato.... e taaaac!
Analisi statica:
Sono stati trovati 1 errori durante l'analisi.
Missing expression. (near "ON" at position 25)
Query SQL: Modifica
SET FOREIGN_KEY_CHECKS = ON;
Messaggio di MySQL: Documentazione
#2006 - MySQL server has gone away
Apri una nuova finestra di PhpMyAdmin
Warning in ./libraries/dbi/DBIMysqli.php#262
Error while sending QUERY packet. PID=15950
Backtrace
./libraries/dbi/DBIMysqli.php#262: mysqli_query(
.....
....
...
/libraries/plugins/import/ImportSql.php#170: PMA_importRunQuery(
string '',
string '',
array,
)
./import.php#652: PMA\libraries\plugins\import\ImportSql->doImport(array)
Causa?
Grazie
Probabilmente devi aggiustare
Probabilmente devi aggiustare il valore max_allowed_packet del tuo mysql. Drupal richiede 16M di base ma potrebbe essere necessario alzarlo per grosse importazioni.
// per vedere la variabile (nota in byte quindi X/(1024*1024) ti darà i MB)
SHOW VARIABLES like 'max_allowed_packet';
// per impostare la variabile (per renderla persistente devi inserire il valore nel my.cnf)
SET GLOBAL max_allowed_packet = 1024 * 1024 * 16;
Lo ha caricato tutto dopo
Lo ha caricato tutto dopo aver aumentato lo spazio... da 1048576 a 33554432
lo ha caricato in due parti per il tempo di attesa troppo lungo... però alla fine mi ha dato questo risultato.
Analisi statica:
Sono stati trovati 2 errori durante l'analisi.
Era atteso un nome di simbolo! (near ")" at position 65)
Era attesa almeno la definizione di un campo. (near ")" at position 65)
Query SQL:
CREATE TABLE IF NOT EXISTS `webform_views_form_candidatura_16` ( )
Messaggio di MySQL: Documentazione
#1064 - Errore di sintassi nella query SQL vicino a ')' linea 2
Una tabella deve avere la
Una tabella deve avere la definizione di almeno un campo, qualcosa evidentemente non va, non ce n'è nemmeno uno e il sistema si lamenta di questo.
Non so cosa consigliarti a questo punto: puoi provare a eliminare la riga con questa istruzione ma è probabile causi altri errori...
Ciao Murizio, ho provato a
Ciao Murizio,
ho provato a fare un'altra cosa. Ho utilizzato SQLDUmpSplitter per suddividermi il database in più parti.
Il primo file da caricare è stato quello della struttura, il quale mi ha dato l'errore che ho postato:
Errore
Analisi statica:
Sono stati trovati 2 errori durante l'analisi.
1. Era atteso un nome di simbolo! (near ")" at position 66)
2. Era attesa almeno la definizione di un campo. (near ")" at position 66)
Query SQL:
CREATE TABLE IF NOT EXISTS `webform_views_form_candidatura_16` ( )
Messaggio di MySQL:
#1064 - Errore di sintassi nella query SQL vicino a ')' linea 2
Invece, il restante database non mi ha dato errori.
Il sito lo vede. Quello che non vedo sono i form, ma, soprattutto, non mi fa fare il Login. Se voglio farlo, mi da questo:
PDOException: SQLSTATE[HY000]: General error: 1364 Field 'csid' doesn't have a default value: INSERT INTO {captcha_sessions} (uid, sid, ip_address, timestamp, form_id, solution, status, attempts) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( [:db_insert_placeholder_0] => 0 [:db_insert_placeholder_1] => 5DxSeom7L6pxFj-fVSTSzufct2JgRvy8tBS3i23N_uw [:db_insert_placeholder_2] => 93.149.166.32 [:db_insert_placeholder_3] => 1507141260 [:db_insert_placeholder_4] => user_login [:db_insert_placeholder_5] => b024f12351514f1f02b8c83067013d29 [:db_insert_placeholder_6] => 0 [:db_insert_placeholder_7] => 0 ) in _captcha_generate_captcha_session() (linea 175 di /var/www/vhosts/nomesito.it/httpdocs/sites/all/modules/captcha/captcha.inc).
Grazie.
Nico
La linea 1064 del
La linea 1064 del database:
INSERT INTO `cache_menu` (`cid`, `data`, `expire`, `created`, `serialized`) VALUES
Senti chi ti ha fornito il db
Senti chi ti ha fornito il db e fatti fare un dump senza i dati delle tabelle delle cache, della ricerca e del watchdog (magari usando il modulo backup and migrate) e prova a reimportarlo senza suddividerlo con altri strumenti. Purtroppo se non riesci a tirar su una copia del database senza errori è probabile che continuerai ad avere problemi.
Okay grazie, lo contatto e
Okay grazie,
lo contatto e vediamo cosa i dice.
Nico
Ciao Maurizio, ho fatto una
Ciao Maurizio,
ho fatto una verifica e mancano 5 tabelle..
Me le ha fornite... ma in fase di importazione ho un'errore.
Analisi statica:
Sono stati trovati 2 errori durante l'analisi.
Era atteso un nome di simbolo! (near ")" at position 65)
Era attesa almeno la definizione di un campo. (near ")" at position 65)
Query SQL:
CREATE TABLE IF NOT EXISTS `webform_views_form_candidatura_16` ( )
Messaggio di MySQL: Documentazione
#1064 - Errore di sintassi nella query SQL vicino a ')' linea 2
LE TABELLE MANCANTI PROVATE AD IMPORTARE:
-- --------------------------------------------------------
--
-- Struttura stand-in per le viste `webform_views_form_candidatura_16`
--
CREATE TABLE IF NOT EXISTS `webform_views_form_candidatura_16` (
);
-- --------------------------------------------------------
--
-- Struttura stand-in per le viste `webform_views_ladyb_32`
--
CREATE TABLE IF NOT EXISTS `webform_views_ladyb_32` (
);
Ed è l'errore che ricevevi
Ed è l'errore che ricevevi qualche post sopra, hai tabelle senza campi definiti.
Le tabelle senza campi comunque non le puoi importare quindi devi eliminarle dal file di importazione.
Ma non riesci a metterti d'accordo con il vecchio gestore e dietro compenso a far fare a lui la migrazione dal vecchio al nuovo server?
Non è una questione di
Non è una questione di compenso, e che il vecchio gestore non riesce ad accedervi a quelle tabelle vuote.
Infatti, le altre tre tabelle, che hanno i campi definiti, me le ha generate.
Ti ringrazio sempre per la pazienza e la disponibilità.
Nico
Ah ... il problema quindi è
Ah ... il problema quindi è anche più esteso, potrebbero essere crashate o chissà cos'altro.
Quanto meno prova a fare qualcosa per login, lancia la query
ALTER TABLE captcha_sessions MODIFY csid int NOT NULL AUTO_INCREMENT;
e ripeti la login, vedi se riesci ad entrare.
Lanciata la query: ALTER
Lanciata la query:
ALTER TABLE captcha_sessions MODIFY csid int NOT NULL AUTO_INCREMENT
Messaggio di MySQL:
#1075 - Puo` esserci solo un campo AUTO e deve essere definito come chiave
... :-(
lancia ALTER TABLE
lancia
ALTER TABLE captcha_sessions MODIFY csid int NOT NULL AUTO_INCREMENT PRIMARY KEY
Ciao Maurizio, sono riuscito
Ciao Maurizio, sono riuscito ad entrare con:
ALTER TABLE captcha_sessions MODIFY csid int NOT NULL AUTO_INCREMENT PRIMARY KEY
Ed è un'altro passo avanti.
L'errore che sta martellando è questo:
SQLSTATE[HY000]: General error: 1364 Field 'item_id' doesn't have a default value: INSERT INTO {queue} (name, data, created) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2); Array ( [:db_insert_placeholder_0] => update_fetch_tasks [:db_insert_placeholder_1] => a:8:{s:4:"name";s:21:"administerusersbyrole";s:4:"info";a:6:{s:4:"name";s:24:"Administer Users by Role";s:7:"version";s:7:"7.x-2.0";s:7:"project";s:21:"administerusersbyrole";s:9:"datestamp";s:10:"1462228009";s:7:"package";s:5:"Other";s:16:"_info_file_ctime";i:1507132058;}s:9:"datestamp";s:10:"1462228009";s:8:"includes";a:1:{s:21:"administerusersbyrole";s:24:"Administer Users by Role";}s:12:"project_type";s:6:"module";s:14:"project_status";b:1;s:10:"sub_themes";a:0:{}s:11:"base_themes";a:0:{}} [:db_insert_placeholder_2] => 1507650554 ) in SystemQueue->createItem() (linea 221 di /var/www/vhosts/nomesito.it/httpdocs/modules/system/system.queue.inc).
Ho dato un'occhiata anche in giro, e qualcuno ha risolto usando questa soluzione:
DROP TABLE IF EXISTS `watchdog`;
CREATE TABLE `watchdog` (
`wid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique watchdog event ID.',
`uid` int(11) NOT NULL DEFAULT '0' COMMENT 'The users.uid of the user who triggered the event.',
`type` varchar(64) NOT NULL DEFAULT '' COMMENT 'Type of log message, for example "user" or "page not found."',
`message` longtext NOT NULL COMMENT 'Text of log message to be passed into the t() function.',
`variables` longblob NOT NULL COMMENT 'Serialized array of variables that match the message string and that is passed into the t() function.',
`severity` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'The severity level of the event; ranges from 0 (Emergency) to 7 (Debug)',
`link` varchar(255) DEFAULT '' COMMENT 'Link to view the result of the event.',
`location` text NOT NULL COMMENT 'URL of the origin of the event.',
`referer` text COMMENT 'URL of referring page.',
`hostname` varchar(128) NOT NULL DEFAULT '' COMMENT 'Hostname of the user who triggered the event.',
`timestamp` int(11) NOT NULL DEFAULT '0' COMMENT 'Unix timestamp of when event occurred.',
PRIMARY KEY (`wid`),
KEY `type` (`type`),
KEY `uid` (`uid`),
KEY `severity` (`severity`)
) ENGINE=InnoDB AUTO_INCREMENT=811 DEFAULT CHARSET=utf8 COMMENT='Table that contains logs of all system events.';
Ma nel mio caso non ha funzionato... :-(
Grazie
Nico
Non credo funzioni perchè
Non credo funzioni perchè agisce su un'altra tabella. Il tuo problema è su queue, la soluzione che hai trovato ricostruisce watchdog. Credo ti occorra qualcosa del genere
ALTER TABLE queue MODIFY item_id int NOT NULL AUTO_INCREMENT PRIMARY KEY
Ciao Maurizio, con questa
Ciao Maurizio,
con questa riga di comando che mi hai suggerito mi ha eliminato l'errore.
Riesco a vedere il pannello di controllo drupal.
devo correggere:
File system Scrivibile (modalità di download pubblica)
La cartella /home/ovh/www/vecchiogestore/nomesito/private/ non esiste. Puoi aver bisogno di impostare la cartella corretta sulla pagina delle impostazioni del file system oppure cambiare gli attuali permessi di scrittura sulla cartella in modo da renderla scrivibile.
Private files directory
See http://drupal.org/SA-CORE-2013-003 for information about the recommended .htaccess file which should be added to the /home/ovh/www/vecchiogestore/nomesito/private/ directory to help protect against arbitrary code execution.
Public files directory
See http://drupal.org/SA-CORE-2013-003 for information about the recommended .htaccess file which should be added to the sites/default/files directory to help protect against arbitrary code execution.
Vediamo se ci riesco.
Grazie Maurizio!
Per la directory privata devi
Per la directory privata devi solo aggiustare l'indirizzo in modo che punti alla directory corretta (che devono averti recapitato assieme alla copia del sito).
Per quanto riguarda gli .htaccess in questione prova semplicemente ad eliminarli dalla directory (es: sites/default/files/.htaccess). Drupal provvede a rigenerarli correttamente al primo accesso: può darsi che tu risolva così.
Ciao Maurizio, ho sistemato
Ciao Maurizio,
ho sistemato la directory per la destinazione dei file privati. Solo che devo inserire un nuovo contenuto o voglio effettuare un'aggiornamento mi da sempre questo errore:
Aggiornamento di un modulo:
PDOException: SQLSTATE[HY000]: General error: 1364 Field 'value' doesn't have a default value: INSERT INTO {sequences} () VALUES (); Array ( ) in db_next_id() (linea 2713 di /var/www/vhosts/nomesito.it/httpdocs/includes/database/database.inc).
Caricamento di un'immagine:
Una richiesta AJAX HTTP è terminata in modo anomalo.
Di seguito le informazioni di debug.
Percorso: /it/file/ajax/field_slide_home_immagine/und/0/form-xouZdiBZKomZDNtUEpG7gRje34sbRxNZr_fDV29w3lY
StatusText: n/a
ResponseText:
Errore
Messaggio di errore
PDOException: SQLSTATE[HY000]: General error: 1364 Field 'fid' doesn't have a default value: INSERT INTO {file_managed} (uid, filename, uri, filemime, filesize, status, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6); Array
(
[:db_insert_placeholder_0] => 1
[:db_insert_placeholder_1] => immagine-esempio.png
[:db_insert_placeholder_2] => public://Slider_home/immagine/immagine-esempio.png
[:db_insert_placeholder_3] => image/png
[:db_insert_placeholder_4] => 96038
[:db_insert_placeholder_5] => 0
[:db_insert_placeholder_6] => 1507719597
)
in drupal_write_record() (linea 7383 di /var/www/vhosts/nomesito.it/httpdocs/includes/common.inc).
Si è verificato un errore inatteso. Riprova più tardi, grazie.
ReadyState: undefined
Che sarà?
Sul resoconto di stato è tutto ok tranne su questo checks che non mi permette di farlo.
Security Review There are failed Security Review checks. Review the checklist
nel dettaglio:
PHP files in the Drupal files directory can be executed. SKIP?
Grazie
Nico
Sembra manchino le chiavi
Sembra manchino le chiavi primarie definite come seriali (auto increment).
E' possibile per ragioni di performance che nel dump del database vengano aggiunte in fondo al file e essendo fallita l'importazione a causa di alcuni istruzione, non siano state create.
Controlla in fondo al file di importazione che ti hanno dato se ci sono istruzioni simili a quelle lanciate in precedenza es:
ALTER TABLE [nometabella] MODIFY [nomecampo] [tipocampo - int] NOT NULL AUTO_INCREMENT PRIMARY KEY
nel caso le copi e le lanci una ad una.
In fondo al file ci sono le
In fondo al file ci sono le tabelle che inizialmente non mi ha importato, quelle senza contenuto che poi abbiamo sistemato. Ma nulla inerente a ALTER TABLE....
Sembra come se non riesce a scrivere il database.
Per esempio, se compilo un form del sito e lo invio, mi genera sempre l'errore 1364..
Nico
ALTER TABLE sequences MODIFY
ALTER TABLE sequences MODIFY value int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
Non va... se può essere
Non va...
se può essere utile, in fondo ad db ricevuto c'è questo errore:
<!-- PMA-SQL-ERROR -->
<div class="error"><h1>Errore</h1>
<p><strong>Query SQL:</strong>
<a href="db_sql.php?sql_query=SHOW+TABLE+STATUS+FROM+%60motorradclubitalia_db%60+WHERE+Name+%3D+%27webform_views_form_candidatura_16%27&show_query=1&db=nome_db&token=070f65ebd95f1f9c79bf472080cdc223"><span class="nowrap"><img src="themes/dot.gif" title="Modifica" alt="Modifica" class="icon ic_b_edit" /> Modifica</span></a> </p>
<p>
<code class="sql"><pre>
SHOW TABLE STATUS FROM `nome_db` WHERE Name = 'webform_views_form_candidatura_16'
</pre></code>
</p>
p>
<strong>Messaggio di MySQL: </strong><a href="./url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Ferror-messages-server.html" target="mysql_doc"><img src="themes/dot.gif" title="Documentazione" alt="Documentazione" class="icon ic_b_help" /></a>
</p>
Nico
Devi cercare di aggiungere
Devi cercare di aggiungere tutte i seriali mancanti. In generale quando incontri l'errore
PDOException: SQLSTATE[HY000]: General error: 1364 Field 'fid' doesn't have a default value: INSERT INTO {file_managed} ...
devi lanciare una query del genere
ALTER TABLE file_managed MODIFY fid int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
nota il grassetto sulle corrispondenze.
Non è un'equazione ma è probabile funzioni.
Ciao Maurizio, man mano che
Ciao Maurizio,
man mano che uscivano gli errori mentre verifico il sito, gli ho corretti grazie al tuo suggerimento.. tipo:
ALTER TABLE node_revision MODIFY vid int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
ALTER TABLE url_alias MODIFY pid int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
ALTER TABLE locales_source MODIFY lid int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
e cos' via...
sono arrivato nel provare a fare un'aggiornamento del modulo Chaptcha... lo ha effettuato con successo... solo che adesso il dominio principale nomesito.it mi da l'errore 504 Gateway Time-out, metre gli altri domini (essendo un sito multidominio) sono raggiungibili.
Secondo te?
Nico
Ciao, il 504 è un errore lato
Ciao, il 504 è un errore lato server, qui una spiegazione dell'errore e possibili risoluzioni.
Un timeout può essere causato
Un timeout può essere causato da molti fattori (sistema mal configurato, query lente, codici non ottimizzati e molto altro). Ad ogni modo se provo ad entrare nel sito principale che credo sia
http://www.motorradclubitalia.it/
non ricevo un timeout anche se la piattaforma è in generale molto lenta a rispondere.
Potresti vedere in giro se ci sono codici che producono warning e debuggarli e dare una controllata al database con il modulo "schema": questo ti mostrerà se il db è disallineato rispetto alla configurazione di Drupal. Per ogni messaggio riscontrato dovresti poi modificare la struttura del db per riallinearlo: ad esempio la mancanza di chiavi e indici potrebbe rendere lentissima l'esecuzione di query con molti join o la ricerca su determinate colonne.
Direi comunque che il sito è tornato in piedi, quindi nel caso ti servisse apri una nuova richiesta di supporto.