CentOS-Italia.org - La Community degli Utenti Italiani di Linux CentOS Forum e Guide How To

Supporto Tecnico a Centos => Server => Topic aperto da: jerg - 17 Ottobre 2013, 04:59:14

Titolo: Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: jerg - 17 Ottobre 2013, 04:59:14
Salve a tutti, tanto che non "passo da queste parti", vedo che il forum cresciuto, quindi i miei complimenti agli amminitratori.

Senza dilungarmi troppo, avevo bisogno di pi itanze di mysql che girassero con gli stessi binari ma datadir(la diectory dei database) diverse e file di configurazione diversi, che si avviassero ognuna con un proprio init script. Dopo vari smanettamenti la cosa funziona e se m concesso ne scriver una guida nel forum :-)

ora la situazione questa:
ho 2 istanze di mysql, mysqld1 e mysqld2. mi connetto ad ognuna con il tool mysql, in questo modo:
Codice: [Seleziona]
mysql --socket=/mysqld1/mysql.sock -u root -poppure per la seconda istanza
Codice: [Seleziona]
mysql --socket=/mysqld2/mysql.sock -u root -p
Ora sto tentando di connettermi a mysql tramite la porta e non il socket, quindi tento:
Codice: [Seleziona]
mysql --port=3306 -u root -poppure per la seconda
Codice: [Seleziona]
mysql --port=3307 -u root -p
ma non v restituendo l'errore:
Codice: [Seleziona]
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
da quanto ho letto nella documentazione ufficiale(a mio avviso disorganizatissima) nel file my.cnf pu essere scritta una sezione con i parametri per i client del tipo:

Codice: [Seleziona]
[client]
port=3306
socket=/mysql1/mysql.sock
log=/mysql1/mysqld-clients.log

con queste due direttive dovrei riuscire a fare in modo che quando un client si connette alla porta 3309 prenda il socket giusto ma continua a non funzionare dicendomi che non trova var/lib/mysql/mysql.sock che ovviamente non c' visto che /mysql1/mysql.sock.

Qualche idea?

Grazie infinite a tutti
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: LonelyWolf - 17 Ottobre 2013, 08:42:12
Hai letto queste pagine di documentazione?

http://dev.mysql.com/doc/refman/5.5/en/mysqld-multi.html
http://dev.mysql.com/doc/refman/5.5/en/multiple-data-directories.html
http://dev.mysql.com/doc/refman/5.5/en/multiple-server-clients.html
http://dev.mysql.com/doc/refman/5.5/en/option-files.html
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: smeserver - 17 Ottobre 2013, 12:26:57
a mio (modestissimo ed opinabilissimo) parere, l'approccio sbagliato e foriero di casini.. :-)
la virtualizzazione esiste anche per risolvere questi problemi, e visto il costo irrisorio (ormai) di ram e hd (costo al GB) e la potenza di calcolo dei processori, la creazione di una macchina virtuale una operazione ormai banale.

ripensaci :-)
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: LonelyWolf - 17 Ottobre 2013, 14:10:11
E' una proposta accettabile ma, per valutarne l'utilizzo, necessario conoscere il sistema nel suo complesso, cosa che noi non conosciamo.

Considerando che mysql prevede la possibilit di farlo, mi sembra un po' come se si usasse una vm per ogni condivisione samba.
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: smeserver - 17 Ottobre 2013, 14:42:57
hai certamente ragione.. ma il discorso comunque valido.. :-)

restiamo in attesa di input ;-)
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: jerg - 17 Ottobre 2013, 18:23:10
a LonelyWolf: si ho lette quelle pagine e hanno chiarito molte cose ma non tutte.

Ovviamente queste prove sono fatte su una vm di test in vmware sul mio portatile.
Avete tutti ragione quando parlate della virtualizzazione, vi spiego la situazione semplificando il pi possibile nel senso che l'infrastruttura suddivisa su pi macchine in ridondanza e tolleranza hai guasti tramite un software scritto da me, sto testando questo software in produzione ma non questo il nocciolo, in questo post faccio finta le varie cose girino su macchine singole.

c' un server su cui installata centos 6 x86_64 con xen che virtualizza delle vm(che forniscono vari servizi tipo samba,etc) aventi i dischi su un'altra macchina(sempre centos6 x86_64) che fa da storage e che condivide i dischi delle vm in nfs e che fornisce il servizio mysql. ora lo storage virtualizza una macchina che poi fornisce le condivisioni nfs e mysql. so che un p contorta la cosa ma questa configurazione serve al mio programma per gestire la ridondanza, sostanzialmente sposta, accende e spegne cloni delle vm quando queste non rispondono in tempi prestabiliti o inviano dei segnali, etc, etc.. quindi ho bisogno di avviare pi istanze di mysql perch ognuna deve contenere pi database del tipo:
istanza1 per i database dell'hosting
istanza2 per i database interni(amministrazione, wiki delle procedure aziendali,etc)
istanza3 per i database di sviluppo e di test
il fatto di avere diverse istanza serve per confinare il pi possibile i problemi, nel senso se il wiki sbrocca e mi impappina l'istanza2, l'istanza1 non ne deve risentire assolutamente e cosi via, ma mettermi a fare una vm per ogni istanza mi sembra uno spreco.

che ne pensate? spero di essermi spiegato, ovviamente io in testa ho tutto chiaro ma spegarlo complicato hahaha :-)

grazie grazie a tutti davvero
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: dankan77 - 17 Ottobre 2013, 18:54:50
Ciao,
ho letto un pochino la discussione e direi che potreste usare proxmox oppure openvz su centos.
Questo permetterebbe di usare le vps (una sorta di vm ma + leggere) che sono fondamendalmente ambienti chroottati.
La soluzione usata in ambienti di produzione in diversi contesti ISP.
Un consiglio, usa il tuo strumento di disegno preferito e fai uno schema fisico e logico di come deve funzionare il tutto (magari lo posti sul forum).
Non sottovalutare la configurazione RAID dei dischi il bonding sulle interfacce, un server ridondato oppure due sistemi in HA ed almeno una linea di UPS per spegnere tutto in maniera pulita in caso di down prolungato dell'alimentazione elettrica.
Se hai dubbi posta pure.

Ciao
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: jerg - 21 Ottobre 2013, 00:53:12
a dandkan77:

di vps, proxmox e openvz ne ho sentito parlare ma non ho mai fatto prove ne altro.

Avevo intenzione di fare uno schema, e approfondire bene la situazione ma come al solito 24h al giorno non bastano(tanto se il giorno fosse di 48h dopo un p non basterebbero nemmeno quelle :-) ). Per la cronaca gi tutto sotto UPS e il fatto di usare lo storage come "scatolone" per i dischi(file) delle vm proprio perch lo storage ha dei 6xSATA RAID1 1tb, invece sulle singole macchine che eseguono le vm ci sono dischi 2xSCSI RAID1 75gb, ho speso molto meno.

Non ho il tempo di fare uno schema di approfondire, ho provato la configurazione di cui vi ho parlato e usando il comando
Codice: [Seleziona]
mysql --socket /mysql1/mysql.sock -u root -pfunziona per tutte le istanze locali, ho provato a creare dei database diversi sulle istanze e a dagli i permessi d'accesso a determinati IP e da remoto la connsessione funziona, tramite porta, del tipo:
Codice: [Seleziona]
mysql -h 192.168.10.13 -P 3309 -u root -p
Codice: [Seleziona]
mysql -h 192.168.10.13 -P 3310 -u root -pper ora mi faccio bastare questo, mi basta per effettuare l'accesso tramite php nelle pagine web.

Visto che comunque il suo lavoro lo f vorrei scrivere una guida con la procedura che ho seguito e tutte le spiegazioni, per chi volesse tentare, se i moderatori sono d'accordo.

sperando di poter rimettere mano alla discussione e scrivere una soluzione saluti e grazie infinite a tutti
Titolo: Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
Inserito da: jerg - 26 Novembre 2013, 02:21:43
Per la cronaca sto usando il sistema sopra descritto in produzione, fin'ora tutto liscio, su vari siti faccio connessioni alle varie istanze mysql tramite la porta utilizzando php, i siti sono su macchine diverse da quella dei database mysql. purtroppo l'errore che descrivo sopra non sono ancora riuscito a risolverlo anche se la soluzione sembra sempre pi essere quella di installare varie istanze compilando direttamente dai sorgenti.