मैं Mariadb 10.6 सर्वर के साथ बहु-स्रोत प्रतिकृति स्थापित कर रहा हूं। मेरे पास डेटाबेस के साथ 2 मारियाडब सर्वर हैं जिनका एक ही नाम "डेटाबेस" है। मैं चाहता हूं कि वे दो सर्वर एक ही दास सर्वर पर अपने डीबी को दोहराएं ताकि मास्टर 1 के डेटाबेस को डेटाबेस 1 में दोहराया जाए और मास्टर 2 के डेटाबेस को डेटाबेस 2 में दोहराया जाए।

यहाँ मास्टर्स विन्यास है:

# Replication
log-bin
server_id=1 # 2 for master2
log-basename=master1 # master2 for master2
binlog-format=mixed
gtid_domain_id=1 # 2 for master2

यहाँ दास विन्यास है:

#Replication

log-bin
server_id=3
master1.replicate_rewrite_db="database->database1"
master2.replicate_rewrite_db="database->database2"

मैं एक mysqldump करके मास्टर 1 का बैकअप लेता हूं:

sudo mysqldump --master-data=2 -u root -p database > master1_test.sql

और इसे दास पर आयात करें।

मैं प्रतिकृति शुरू करने के लिए मारियाडब क्ली पर इन आदेशों का उपयोग करता हूं:

stop slave 'master1';
reset slave 'master1';
CHANGE MASTER 'master1' TO MASTER_HOST='XXXX', MASTER_USER='replication', MASTER_PASSWORD='XXXXXXX', MASTER_PORT=3306, MASTER_LOG_FILE='master1-bin.000001', MASTER_LOG_POS=710, MASTER_CONNECT_RETRY=10, MASTER_USE_GTID = slave_pos;
SET GLOBAL gtid_slave_pos = "1-1-2"
start slave 'master1';

MASTER_LOG_FILE, MASTER_LOG_POS और gtid_slave_pos डंप फ़ाइल से लिए गए हैं।

सब कुछ ठीक काम करता है। मैंने मास्टर 1 में एक नई तालिका जोड़ने की कोशिश की, नई तालिका का निर्माण दोहराया गया है।

हालांकि, जब मैंने नई तालिका में कुछ डेटा डालने का प्रयास किया तो निम्न आदेश मुझे बताता है:

show slave 'master1' status \G;
Last_SQL_Error: Error 'Table 'database.test' doesn't exist' on query. Default database: 'database1'. Query: 'INSERT INTO `database`.`test` (`test`) VALUES ('1242')'

इसे डेटाबेस को डेटाबेस 1 से बदलना चाहिए।

no answer