Newsgroup: it.comp.www.php
Titolo: [PHP e MYSQL] Lost connection to MySQL server during query

Ciao a tutti, sto provando uno script php che fa 50 INSERT e 1 DELETE.
Lanciato normalmente su un database, funziona.
Lanciato 20 volte in contemporanea su 20 database diversi, funziona.
Lanciato 25 volte in contemporanea su 25 database diversi, non funziona 
e da:
Errore 2013: Lost connection to MySQL server during query
Anche se provo a fare una query dal client, da linea di comando, mentre 
sono in esecuzione i 25 script, attende un po' e poi scrive lo stesso 
errore 2013.
Può essere qualche cosa da settare nei file di configurazione di mysql?
Mi scuso per il forse-OT e ringrazio per qualunque suggerimento.
Alessandro.

 Errore 2013: Lost connection to MySQL server during query
Ho aumentato innodb_buffer_pool_size a 512M e pare risolto, però 
lanciando 75 script su 75 db diversi allo stesso tempo, alcuni script (4 
o 5) falliscono la connect.
Qualche idea?
Grazie.

 Errore 2013: Lost connection to MySQL server during query
Il motivo per cui per applicazioni professionali NON si usa MySQL e`
proprio questo. Va benissimo su un sito web in cui hai poche operazioni,
ma appena aumenti la concorrenza di accesso, e soprattutto devi avere
transazioni, dimostra tutti i suoi limiti.
Se ti serve gestire quel carico, usa PostgreSQL. Tra l'altro in condizioni
di alta concorrenza ha prestazioni molto migliori di MySQL. In pratica,
scala meglio.
InnoDB, in piu`, ha un difetto che non sopporto: devi definire i file del
database, e se imposti la "crescita automatica" loro crescono, e crescono,
e crescono, poi arrivano a 100 Gb e tu cancelli 70 Gb di dati, ma loro
occupano ancora 100 Gb, e l'unico modo per recuperare lo spazio e` fare un
backup/restore di tutto.
Bye.

backup/restore di tutto.
Se fai una SELECT INTO una nuova tabella e poi le swappi, la nuova non
dovrebbe essere gia' clusterata?
(Non lo so, eh, potrebbe benissimo essere una mia fantasia).
Leonardo
-- 
There is nothing makes a man suspect much, more than to know little,
and therefore men should remedy suspicion by procuring to know more,
and not keep their suspicions in smother.            (Francis Bacon)

 dovrebbe essere gia' clusterata?
No, perche` InnoDB usa un singolo file per tutte le tabelle InnoDB di tutti
i database.
L'unico modo e` appunto di fare un backup a caldo, fermare MySQL,
cancellare tutto, far ripartire MySQL e fare il restore a caldo.
Puoi sostituire "cancellare tutto" con "cercare manualmente tutte le
tabelle innodb (le MiISAM non serve), cancellarle (con MySQL attivo, ma
dopo il backup) una a una, fermare MySQL, cancellare i file di innodb,
farlo ripartire, fare il restore delle sole tabelle InnoDB".
E no, non c'e` altro modo. Ho controllato anche tutti i forum, le FAQ, il
sito MySQL piu` di una volta.
E si`, se hai delle tabelle InnoDB dentro un database mischiate a tabelle
MyISAM, le MyISAM avranno un file dentro la cartella del DB, e le InnoDB
saranno dentro il megafile di storage.
Al massimo ci si puo` fare uno script.
Tu non hai idea (o forse ce l'hai) delle bestemmie che sto tirando perche`
quasi un anno fa ho liberato 40 Gb di dati ma non ho recuperato nemmeno un
byte sul server che non posso fermare per fare le operazioni di cui sopra.
L'unica consolazione e` che almeno i backup sono piu` piccoli, visto che
prende solo i dati e non fa un dump del file... :/
In PostgreSQL, invece, a parte i nomi strani delle cartelle e dei file,
ogni tabella ha un file, ogni indice ha un file, ogni db ha una cartella,
ecc.
Bye.

 scala meglio.
Terrò in debita considerazione il consiglio e farò delle prove, ne 
approfitto per chiederti:
1. in mysql è banale fare la replica master-master (in pratica 2 server 
equivalenti con i db sempre allineati) e questo devo farlo 
necessariamente: postgres lo fa? gestisce le autoincrement in modo non 
conflittuale (cioè un server sceglie i numeri pari e l'altro i dispari)?
2. anni fa l'ho provato e mi ero scontrato con i nomi dei campi o delle 
tabelle (non ricordo): nell'applicazione li ho tutti in maiuscolo, lo 
gestisce senza problemi?
Grazie per le informazioni,
Alessandro.

 gestisce senza problemi?
Si`, e` tutto case insensitive, a meno che non usi le virgolette per gli
identificatori.
Bye.

 gestisce senza problemi?
ID e parole chiave sono case-insensitive, a meno che non usi le doppie
virgolette, nel qual caso vanno intesi in senso letterale:
http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it