天天看點

mysql雙機熱備和主從_搭建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 [email protected]:/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;

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

記住 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

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

Slave_SQL_Running: Yes

Slave_IO_Running:Yes

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

master 10.0.18.132

對mytest表插入資料

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

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

slave 10.0.18.136

use test

select * from mytest;

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

資料一緻 表示完成~

讀寫分離和資料庫優化下個随筆見~