Autore Topic: Istanze multiple mysql, connessione con mysql(tool) tramite porta  (Letto 11416 volte)

Offline jerg

  • Full Member
  • ***
  • Post: 99
    • Mostra profilo
    • E-mail
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


Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
« Risposta #2 il: 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 :-)

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
« Risposta #3 il: 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.

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
« Risposta #4 il: 17 Ottobre 2013, 14:42:57 »
hai certamente ragione.. ma il discorso è comunque valido.. :-)

restiamo in attesa di input ;-)

Offline jerg

  • Full Member
  • ***
  • Post: 99
    • Mostra profilo
    • E-mail
Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
« Risposta #5 il: 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

Offline dankan77

  • Moderator
  • Hero Member
  • *****
  • Post: 1365
    • Mostra profilo
    • E-mail
Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
« Risposta #6 il: 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

Offline jerg

  • Full Member
  • ***
  • Post: 99
    • Mostra profilo
    • E-mail
Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
« Risposta #7 il: 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

Offline jerg

  • Full Member
  • ***
  • Post: 99
    • Mostra profilo
    • E-mail
Re:Istanze multiple mysql, connessione con mysql(tool) tramite porta
« Risposta #8 il: 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.
« Ultima modifica: 26 Novembre 2013, 02:26:59 da jerg »