Replica nello stesso server all'interno di diversi database.Mysql 5.6.
-
26-09-2020 - |
Domanda
Cosa ho:
- .
- Una macchina Windows con un'istanza di MySQL 5.6 Server.
- Due database denominati test e test2.
- Il database
Test
ha una tabella chiamataactivity
con colonneid
eclass
Cosa ho bisogno:
- .
- Replica della tabella
test.activity
al databasetest2
con una condizione cheTest.activity.class = 'B'
.
So come replicare con un server diverso.Ma non per lo stesso server all'interno di diversi database. Ho controllato questo link , ma lo fanon dare abbastanza informazioni.
Soluzione
Non sarebbe affatto una situazione normale!Non è possibile modificare il database durante la replica e il master / slave non può avere gli stessi ID server.Consiglierei se è necessario farlo, quindi configurare alcuni trigger sul primo DB, per replicare i comandi Inserisci / Aggiorna contro il secondo.
Altri suggerimenti
Perché è sullo stesso server, perché non usi un trigger per questo?
Se vuoi solo replicare i dati è possibile aggiungere un triger su aggiornamento o inserire o sia quello che è necessario.In questo modo puoi usare facilmente le tue condizioni.La replica master / slave sarebbe migliore per i server diversi.
Puoi guardare qui per gli esempi di trigger mysql. E qui è un campione per il tuo caso.
Se ho capito correttamente la tua necessità, puoi avere 2 istanze MySQL su un singolo server (OS), è possibile configurare uno di essi come Master e un altro come schiavo.Devi creare diversi my.conf, ci ha chiamato My1.Conf e My2.Conf che ognuno dovrebbe essere diverso sul numero di porta e sul percorso del socket e sul percorso di errore del registro e alcuni altri parametri.Con questo approccio, eseguirai 2 daemon MySQL con diverse configurazioni.Per il dotto completo per favore vai a https://dev.mysql.com/doc/refman/5.1/it/multiple-servers.html .
Prova MySQL Sandbox, probabilmente risolverà il tuo problema ( http://mysqlsandbox.net/ )
Perché:
.Replica del test.activity Tabella per testare2 Database con una condizione Quel test.Activity.class= 'B'.
Replica nativa non aiuta, e in questo caso meglio lasciare sia il database sullo stesso server e basta installare il trigger per inser / update / elimina sul database master, che controllerà le condizioni e apportano modifiche dirette sul secondo database.
Questo è il modo più semplice.Ci sono molti altri possibili.