溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql5.7 主從復(fù)制

發(fā)布時間:2020-05-29 19:50:21 來源:網(wǎng)絡(luò) 閱讀:661 作者:zjunzz 欄目:MySQL數(shù)據(jù)庫

mysql5.7 主從復(fù)制

注意事項:
主庫全庫備份完查看該文件binlog pos標記位
文件名為:binlog_pos_innodb 記錄當(dāng)時mysql備份時主庫的標記為

環(huán)境說明:
兩臺安裝在CentOS7.4的MySQL5.7.22服務(wù)器:master 和 slave
Master服務(wù)器:
IP:192.168.80.51
Port:3306
Slave 服務(wù)器:
IP:192.168.80.52
Port:3306
配置步驟:
1、 修改master的my.cnf配置文件,開啟記錄日志并設(shè)置server-id。
2、 修改slave的my.cnf配置文件,開啟讀取二進制日志并設(shè)置server-id。
3、 在slave上啟動slave與master的連接。
4、 檢查是否配置成功與排錯。
1、 master 庫my.cnf配置文件,在[mysqld]下添加如下配置:
A SERVER:

[client]
user = pmostc
password = pmostc
port = 3306
socket = /tmp/mysql.sock

[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /workspace/app/mysql/
datadir = /workspace/data/mysql/
tmpdir = /tmp
pid-file = /workspace/data/mysql/mysql.pid
bind-address = 127.0.0.1
log-bin=mysql-bin
server-id=1
log-error=mysqld.log

replicate-ignore-table=database.table

log-slave-updates = 1

說明:
log-bin 配置的是開啟二進制日志,并將日志寫在配置的路徑上。記錄的日志將以master-bin.000001 的方式進行記錄。
log-bin-index 配置的是二進制日志記錄文件的目錄。該文件中每一行都是二進制日志文件的路徑。
server-id是該MySQL服務(wù)器的服務(wù)ID,用于區(qū)分在主從配置中的其他服務(wù)器。
配置成功后,重啟mysqld服務(wù)。
注意:如果不定義log-bin的文件名,則會以hostname主機名命名,一旦主機名修改,則會因為找不見二進制文件報錯。所以最好還是顯示指定文件名。
2、 slave 從my.cnf配置文件,在[mysqld]下添加如下配置:
[client]
user = pmostc
password = pmostc
port = 3306
socket = /tmp/mysql.sock

[mysqld]
user = root
port = 3306
socket = /tmp/mysql.sock
basedir = /workspace/app/mysql/
datadir = /workspace/data/mysql/
tmpdir = /tmp
pid-file = /workspace/data/mysql/mysql.pid
bind-address = 127.0.0.1

server_id = 1921688052
binlog_format=mixed
relay-log = relay-bin
relay-log-index = relay-bin.index
report-host=
report-port=22988
log-bin=mysql-bin
log-error=mysqld.log

replicate-ignore-table=database.table

log-slave-updates = 1
server-id和master意義一樣,用于區(qū)分不同的mysql服務(wù)器。
relay-log用以記錄收到的中繼二進制日志。relay-log-index用以保存收到的日志路徑索引。如果不顯示指定文件名,則以hostname值命名。
保存后可以重啟mysqld服務(wù)。

3、全量備份主數(shù)據(jù)庫
mysqldump -uroot -p123456 database > database.sql

4、在從庫恢復(fù)主庫全量備份數(shù)據(jù)
mysqldump -uroot -p123456 database < database.sql

恢復(fù)完數(shù)據(jù)庫并重啟mysql服務(wù)
5、 在slave上啟動slave與master的連接。
在slave上登錄到mysql,在mysql>:下進行操作。
3.1、mysql>stop slave; //停止slave。
配置標記為同步
mysql> CHANGE MASTER TO MASTER_HOST='192.168.80.51',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=0;

3.3、mysql>start slave;
4、檢查是否配置成功與排錯
mysql>show slave status \G;
在打印出來的狀態(tài)下,查看以下兩個參數(shù)的值:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果這兩個參數(shù)的值都是yes,則運行正常,可以在master數(shù)據(jù)庫上添加一個數(shù)據(jù)庫或者添加一張表,檢查slave數(shù)據(jù)庫上是否存在。
如果 這兩個參數(shù)有任何一個不是 Yes,則說明存在問題??梢圆榭磗lave上的數(shù)據(jù)庫錯誤日志文件查看錯誤原因。
Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running表明slave還沒有開始復(fù)制過程。
常見的錯誤原因:
1、 server-id 一致。
2、 用戶權(quán)限不夠。需要的權(quán)限包括:
REPLICATION SLAVE,RELOAD,CREATE USER,SUPER。
GRANT REPLICATION SLAVE,RELOAD,CREATE USER,SUPER ON . TO {USER}@{IP_ADDR} WITH GRANT OPTION;

grant replication slave,replication client on . to slave@'192.168.80.52' identified by "123456";

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI