準備兩台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;
記住 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;
資料一緻 表示完成~
讀寫分離和資料庫優化下個随筆見~