搭建Mysql雙機熱備 (主從同步)


准備兩台centos7主機:
10.0.18.132 master

10.0.18.136  slave

先把selinux關閉,iptables關閉  或者添加端口

 

132 master安裝好Mysql后,在其my.cnf中添加以下數據

[mysqld]

...

server-id=1
log-bin=mysql-bin
binlog-do-db=test

binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schem

...

/etc/init.d/mysqld restart  重啟數據庫

mysql -uroot -p 回車進入數據庫 (如要指定sock  -S sock的絕對路徑)

grant file on *.* 'ljc'@'10.0.18.136' identified by '123456' ; #指定只能10.0.18.136機器以ljc用戶登錄

grant replication slave on *.* to 'ljc'@'10.0.18.136' indentified by '123456';

創建數據庫

create database test default character set 'utf8';

創建好數據庫最好將其從機

mysqldump -uroot -p123456 --databases test > /tmp/test.sql

scp -r /tmp/test.sql root@10.0.18.136:/tmp/

然后到slave 10.0.18.136還原數據庫

mysql -uroot -p < /tmp/test.sql

 

回到 master 10.0.18.132操作

use test;

create table mytest(username varchar(12),password varchar(12));

 

show master status;

 記住 File  Position 的參數 Slave需要用到

 

此時換到 slave 10.0.18.136操作

對my.cnf添加以下

[mysqld]

...

server_id=2
#log-bin=mysql-bin
binlog-do-db=test
log-slave-updates
#slave-skip-errors=all
slave-net-timeout=60

...

千萬不要在my.cnf添加master端口 ip 等信息 因為在mysql 5.6后已經不支持這種形式

同時修改下數據庫的數據存放目錄中的auto.cnf 因為如果是從主數據庫拷貝的 需要修改uuid 隨便改個數字 保證和主數據庫uuid不同就行

此時可以重啟數據庫

/etc/init.d/mysqld restart

進入數據庫

mysql -uroot -p

change master to master_host="10.0.18.136", master_user="ljc", master_passeord="123456", master_log_file="mysql-bin.000002", master_log_pos=808;

start slave;

show slave status \G

Slave_SQL_Running: Yes

Slave_IO_Running:Yes

表示主從雙機熱備搭建完成 接着是測試

master 10.0.18.132

對mytest表插入數據

 insert into mytest(username, password) values('cc', 123);

 

slave 10.0.18.136

use test

select * from mytest;

數據一致 表示完成~ 

讀寫分離和數據庫優化下個隨筆見~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM