mysql主從復(fù)制配置過程
主庫配置
1. 配置mysql
vim /etc/my.cn # 在文件中增加以下內(nèi)容 server-id=1 # 保證server id唯一 log-bin = /var/lib/mysql/mysql-bin.log binlog-do-db = db1 binlog-do-db = db2
其中db1和db2是計(jì)劃進(jìn)行主從復(fù)制的庫,如果有多個(gè),寫多行即可。配置完畢后,重啟數(shù)據(jù)庫: service mysqld restart
2. 添加復(fù)制用戶
通過phpmyadmin,添加新用戶,并授予REPLICATION SLAVE權(quán)限。或者通過root用戶登錄到mysql,賦予權(quán)限:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'
其中repl是用戶名,password是該用戶的密碼。
3. dump數(shù)據(jù)
如果能夠保證不會(huì)產(chǎn)生新數(shù)據(jù),就不需要對數(shù)據(jù)庫加鎖。如果不能保證,則需要對每一個(gè)dump數(shù)據(jù)的數(shù)據(jù)庫加鎖:
use db1; FLUSH TABLES WITH READ LOCK;
然后dump數(shù)據(jù):
mysqldump -uroot -p db1 > db1.sql
如果有多個(gè)數(shù)據(jù)庫,則重復(fù)上述過程多次。
4. 查看二進(jìn)制文件位置
使用root身份登錄mysql,查看master狀態(tài):
show master status;
該命令會(huì)有類似如下格式的輸出:
+-----------------+-----------+----------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-----------------+-----------+----------------+------------------+ | mysql-bin.00002 | 445 | db1,db2 | | +-----------------+-----------+----------------+------------------+ 1 row in set (0.00 sec)
5. 解鎖
如果導(dǎo)出數(shù)居前對數(shù)據(jù)庫加了讀鎖,則需要解除:
use db1; UNLOCK TABLES;
到此,主庫配置完畢。特別需要記住 show master status
輸出中的 file 和 position 的值。
從庫配置
1. 新建數(shù)據(jù)庫
首先在從庫上建立相同名稱的數(shù)據(jù)庫。
2. 配置從數(shù)據(jù)庫
vim /etc/my.cnf # 在my.cnf中增加以下內(nèi)容: server-id = 2 # 保證id唯一 relay-log = /var/lib/mysql/mysql-relay-bin.log replicate-wild-do-table = db1.% replicate-wild-do-table = db2.%
如果同步多個(gè)數(shù)據(jù)庫,replicate-wild-do-table需要寫多行。配置好后,重啟數(shù)據(jù)庫。
3. 導(dǎo)入數(shù)據(jù)
將主服務(wù)器上dump出來的數(shù)據(jù)導(dǎo)入從服務(wù)器中:
mysql -uroot -p db1 < db1.sql
4. 配置主從同步
登錄到mysql服務(wù)器,配置同步的主服務(wù)器信息:
> 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;
配置好后啟動(dòng)主從同步: start slave
。然后通過命令查看狀態(tài):show slave status
,如果成功的話slave_io_running和slave_sql_running兩項(xiàng)應(yīng)該都是yes.
測試
在主庫上新增記錄或者添加表等操作,幾乎都能實(shí)時(shí)反映到從庫上。
以上就是mysql主從復(fù)制配置過程的詳細(xì)內(nèi)容,更多關(guān)于mysql主從復(fù)制配置的資料請關(guān)注腳本之家其它相關(guān)文章!
- MySQL中主從復(fù)制重復(fù)鍵問題修復(fù)方法
- MySql主從復(fù)制機(jī)制全面解析
- Mysql主從復(fù)制與讀寫分離圖文詳解
- MYSQL數(shù)據(jù)庫GTID實(shí)現(xiàn)主從復(fù)制實(shí)現(xiàn)(超級(jí)方便)
- MySql主從復(fù)制實(shí)現(xiàn)原理及配置
- MySQL主從復(fù)制原理以及需要注意的地方
- mysql 主從復(fù)制如何跳過報(bào)錯(cuò)
- 全面解讀MySQL主從復(fù)制,從原理到安裝配置
- 關(guān)于MySQL主從復(fù)制的幾種復(fù)制方式總結(jié)
- MySQL主從復(fù)制斷開的常用修復(fù)方法
相關(guān)文章
MySQL統(tǒng)計(jì)今日生成create_time的數(shù)據(jù)量的方法小結(jié)
create_time通常是一個(gè)用于表示某個(gè)實(shí)體或事件創(chuàng)建時(shí)間的字段,在數(shù)據(jù)庫設(shè)計(jì)、日志記錄或許多軟件系統(tǒng)中常見,它存儲(chǔ)的是一個(gè)日期或時(shí)間戳,記錄了數(shù)據(jù)首次被創(chuàng)建的具體時(shí)刻,本文介紹了MySQL統(tǒng)計(jì)今日生成create_time的數(shù)據(jù)量的方法,需要的朋友可以參考下2024-08-08MySQL使用distinct去掉查詢結(jié)果重復(fù)的問題
這篇文章主要介紹了MySQL使用distinct去掉查詢結(jié)果重復(fù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01CentOS7.x?安裝mysql5.7?XtraBackUp備份工具使用命令詳解
這篇文章主要介紹了CentOS7.x?安裝mysql5.7?XtraBackUp備份工具使用,本文給大家介紹了mysql安裝過程及命令使用方法,需要的朋友可以參考下2022-04-04一個(gè)小時(shí)學(xué)會(huì)MySQL數(shù)據(jù)庫(張果)
當(dāng)前大量的網(wǎng)站使用php語言,那么對應(yīng)的就是mysql數(shù)據(jù)庫,這里就為大家分享一下MySQL數(shù)據(jù)庫的相關(guān)知識(shí),希望大家多多支持腳本之家2018-01-01Mysql數(shù)據(jù)庫中datetime、bigint、timestamp來表示時(shí)間選擇,誰來存儲(chǔ)時(shí)間效率最高
這篇文章主要介紹了Mysql數(shù)據(jù)庫中datetime、bigint、timestamp來表示時(shí)間選擇,誰來存儲(chǔ)時(shí)間效率最高,針對這一問題每人回答方式各不相同,下面分享下我的個(gè)人想法,需要的朋友可以參考下2021-08-08