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)
[[email protected] ~]# firewall-cmd –add-port=3306/tcp
[[email protected] ~]# firewall-cmd –permanent –add-port=3306/tcp
[[email protected] ~]# 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=’[email protected]’,master_host=’10.99.123.14’,master_port=3306,master_log_file=’localhost-bin.000001’,master_log_pos=36884979;
start slave;
测试已经可以使用,单条数据的变化秒同步,批量导入70W数据,两台slave同步一共占用不到6分钟。