Mysql主從復制

實驗環(huán)境

??? ubuntu-16.04.1

??? mysql 5.7.16

??? xshell_5.0.0.37

??? VirtualBox 5.0.24.8355

??? Navicat 9

實驗步驟

??? 1.首先創(chuàng)建一個mysql的用戶,用戶、密碼都為ubuntu,并且允許遠程訪問。

GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'%'IDENTIFIED BY 'ubuntu' WITH GRANT OPTION;

FLUSH PRIVILEGES;

??? 2.在mysql的配置文件中加入配置,目錄為/etc/mysql/my.cnf

#master節(jié)點

[mysqld]

#mysql的數(shù)據(jù)目錄

#datadir=/mydata/data

#主服務器二進制日志文件前綴名

log-bin=master-bin

# 索引文件

log-bin-index=master-bin.index

# 開啟innodb的一表一個文件的設置

innodb_file_per_table=1

# 必須是唯一的

server-id=112

#slave節(jié)點

[mysqld]

#mysql的數(shù)據(jù)目錄

#datadir=/mydata/data

#禁用二進制日志,從服務器不需要二進制日志文件

#log-bin=mysql-bin

#設置中繼日志

relay-log=relay-log

#中繼日志索引

relay-log-index=relay-log.index

# 開啟innodb的一表一個文件的設置

innodb_file_per_table=1

#id不要和主服務器的一樣

server-id=113

??? 注意:server-id要為唯一

??? 3.進入用戶名為ubuntu的master節(jié)點mysql,輸入下面命令查看。

show master status\G

master status

????? 注意:我們這里需要記下File,Position的指之后再slave節(jié)點中需要進行配置。

? ? 4.進入用戶名為ubuntu的slave節(jié)點mysql,輸入下面命令查看。

show slave status;

????? 查看slave節(jié)點的狀態(tài)

change master to master_host='192.168.3.112',master_user='ubuntu',master_password='ubuntu',master_log_file='master-bin.000001',master_log_pos=154;

? ? ? 添加復制數(shù)據(jù)的主服務器ip、用戶和密碼。以及二進制日志名和復制位置

add slave

start slave;#運行

stop slave;#停止

slave status error

??? 5.一般的來說上述操作就能完成主從復制,但是,我這里還是沒有成功,Slave_IO_Running:NO

并且下方有報錯:

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work

????? 這里它說UUID重復,網(wǎng)上一般說server-id要求唯一,沒有注意server-uuid,因為他們大多都是自己在每一臺機器上面獨立安裝mysql的,我偷懶在虛擬機中克隆了一下,并且是在克隆之前安裝完成了的mysql,所有生成的uuid會一樣。

??? 6.那么我們就需要將server-uuid搞成不一樣的,但是我一開始并沒有設置datadir,原來的配置文件也找不到這個選項。

????? 可以進入mysql中查找datadir,類似server-id,server-uuid的值也都能找到

show variables like 'server_id';

show variables like 'server-uuid';

show variables like 'datadir';

??? 7.找到datadir的位置為/var/lib/mysql/,查看auto.cnf文件,他們的server-uuid的配置文件果然一樣

master server-uuid
slave server-uuid

?

??? 8.將其中的一臺機器的auto.cnf文件備份一份,以防萬一。

mv auto.cnf auto.cnf.bk

????? 之后重啟mysql

sudo service mysql restart

????? 那么隨著mysql的重啟原來的auto.cnf沒有了,mysql就會將它重新生成一個新的auto.cnf。

??? 9.進入slave查看slave status

slave status success

??? 10.測試一下是不是能實現(xiàn)主從復制


master before


slave before

create database test;

master after


slave after

????? 這樣就實現(xiàn)了主從復制了。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容