您好,登錄后才能下訂單哦!
在mysql中如何配置主從復制?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
主庫配置
1. 配置mysql
vim /etc/my.cn # 在文件中增加以下內容 server-id=1 # 保證server id唯一 log-bin = /var/lib/mysql/mysql-bin.log binlog-do-db = db1 binlog-do-db = db2
其中db1和db2是計劃進行主從復制的庫,如果有多個,寫多行即可。配置完畢后,重啟數據庫: service mysqld restart
2. 添加復制用戶
通過phpmyadmin,添加新用戶,并授予REPLICATION SLAVE權限。或者通過root用戶登錄到mysql,賦予權限:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'
其中repl是用戶名,password是該用戶的密碼。
3. dump數據
如果能夠保證不會產生新數據,就不需要對數據庫加鎖。如果不能保證,則需要對每一個dump數據的數據庫加鎖:
use db1; FLUSH TABLES WITH READ LOCK;
然后dump數據:
mysqldump -uroot -p db1 > db1.sql
如果有多個數據庫,則重復上述過程多次。
4. 查看二進制文件位置
使用root身份登錄mysql,查看master狀態:
show master status;
該命令會有類似如下格式的輸出:
+-----------------+-----------+----------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-----------------+-----------+----------------+------------------+ | mysql-bin.00002 | 445 | db1,db2 | | +-----------------+-----------+----------------+------------------+ 1 row in set (0.00 sec)
5. 解鎖
如果導出數居前對數據庫加了讀鎖,則需要解除:
use db1; UNLOCK TABLES;
到此,主庫配置完畢。特別需要記住 show master status
輸出中的 file 和 position 的值。
從庫配置
1. 新建數據庫
首先在從庫上建立相同名稱的數據庫。
2. 配置從數據庫
vim /etc/my.cnf # 在my.cnf中增加以下內容: server-id = 2 # 保證id唯一 relay-log = /var/lib/mysql/mysql-relay-bin.log replicate-wild-do-table = db1.% replicate-wild-do-table = db2.%
如果同步多個數據庫,replicate-wild-do-table需要寫多行。配置好后,重啟數據庫。
3. 導入數據
將主服務器上dump出來的數據導入從服務器中:
mysql -uroot -p db1 < db1.sql
4. 配置主從同步
登錄到mysql服務器,配置同步的主服務器信息:
> change master to master_host='xxx.xxx.xx.xx', > master_user='repl', > master_password='password', > master_log_file='mysql-bin.00000x', > master_log_pos=xxxx;
配置好后啟動主從同步: start slave
。然后通過命令查看狀態:show slave status
,如果成功的話slave_io_running和slave_sql_running兩項應該都是yes.
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。