在MySQL數(shù)據(jù)庫中,跨庫復(fù)制是一種常見的操作。跨庫復(fù)制可以幫助我們把一個數(shù)據(jù)庫中的數(shù)據(jù)同步到另一個數(shù)據(jù)庫中,這是在分布式系統(tǒng)中非常常見的操作。本文將介紹如何使用MySQL實現(xiàn)跨庫復(fù)制。
下面是一個示例,假設(shè)我們有兩個數(shù)據(jù)庫db1和db2,我們希望把db1中的一個表table1復(fù)制到db2中:
#在db1中創(chuàng)建表table1 CREATE TABLE table1 ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; #添加數(shù)據(jù)到table1中 INSERT INTO table1 (name) VALUES ('test1'),('test2'),('test3'); #在db2中創(chuàng)建空表table1 CREATE TABLE table1 ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在MySQL中,使用主從復(fù)制來實現(xiàn)跨庫復(fù)制是最常見的方式。首先,在db1中配置主庫:
#在db1中配置主庫 server-id=1 log-bin=mysql-bin binlog_format=row
然后,在db2中配置從庫:
#在db2中配置從庫 server-id=2 log-bin=mysql-bin binlog_format=row #配置主庫位置 change master to master_host='db1_ip_address', master_user='replication_user', master_password='password', master_log_file='mysql-bin.000001', master_log_pos=660;
其中,master_host是主庫的IP地址,master_user和master_password是用于從庫訪問主庫的用戶名和密碼,master_log_file和master_log_pos是主庫的二進(jìn)制日志位置。
一旦從庫配置完成,可以啟動從庫并開始同步操作:
#啟動從庫 start slave; #查看從庫狀態(tài) show slave status;
使用上述步驟,我們可以在MySQL中實現(xiàn)跨庫復(fù)制操作,并確保數(shù)據(jù)同步到每個數(shù)據(jù)庫中。我們希望這篇文章能夠?qū)τ行枰鐜鞆?fù)制的讀者提供幫助。