Centos7+Mysql5.7實現主從複製
在生產用途中爲了實現更大的吞吐和高可用可能會對數據庫做主從複製或者集羣,我們先從主從複製說起。
一、安裝配置mysql7:
-安裝mysql7: http://blog.csdn.net/jiaoshenmo/article/details/50964280
安裝好mysql之後啓動:
service mysqld start
查看mysql初始密碼:
cat /var/log/mysqld.log | grep ‘password’
連接mysql:
mysql -u root -p
輸入剛剛log裏面顯示的密碼
修改密碼:
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密碼’ PASSWORD EXPIRE;
如果沒有修改可以用:
SET PASSWORD = PASSWORD(‘新密碼’);
執行下圖中的命令,使mysql支持遠程連接:
開通防火牆3306端口(centos7默認防火牆爲firewall不是iptables)
[root@localhost ~]# firewall-cmd –add-port=3306/tcp
[root@localhost ~]# firewall-cmd –permanent –add-port=3306/tcp
[root@localhost ~]# firewall-cmd –reload success
現在你的mysq已經可以正常使用啦!
二、配置主從:
我這有三臺安裝好mysql的服務器,一臺做master,另外兩臺爲slave:
master:10.99.123.14
slave:10.99.123.15
slave:10.99.123.16
master配置:
找到mysql配置文件my.cnf在末尾加上:
log-bin=mysql-bin #slave會基於此log-bin來做replication
server-id=1 #master的標示
innodb_flush_log_at_trx_commit=1
sync_binlog=1
slave配置:
找到mysql配置文件my.cnf在末尾加上:
server-id=2 #slave的標示 ,10.99.123.15配置
server-id=3 #slave的標示 ,10.99.123.16配置
在master中增加用於數據同步的賬戶:
grant replication slave on . to 用戶名@% identified by ‘密碼’
在master中查看Master status
show master status;
配置slave:
stop slave;
change master to
master_user=’repl_user’,master_password=’Lxznds@01’,master_host=’10.99.123.14’,master_port=3306,master_log_file=’localhost-bin.000001’,master_log_pos=36884979;
start slave;
測試已經可以使用,單條數據的變化秒同步,批量導入70W數據,兩臺slave同步一共佔用不到6分鐘。