CentOS7,MySQL主从配置和读写分离
主从配置步骤:
1.确保主数据库与从数据库里的数据一样。
2.在主数据库里创建一个同步账号:例:
mysql> CREATE USER 'repl'@'192.168.1.%' IDENTIFIED BY 'repl123';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%';
3.如果开发防火墙,可能要配置下端口,如下:
firewall-cmd
--zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
4.现在开始配置主数据库:
1)你必须要启用二进制,并且创建一个唯一的Sercer ID,这部操作需要重启Mysql。
2)主服务器发送的变更记录到从服务器依赖的二进制日志,从服务器需要读取日志进行变更数据,如果主服务器没有启用二进制日志,从服务器的数据库不能实现数据的更新。
3)配置二进制日志和Server ID,你需要MySQL和编辑my.cnf或者my.ini文件,要在[mysqld]节点下添加配置。
5)下面是启用二进制日志,日志文件名以“mysql-bin”作为前缀,Server ID配置为1,例:
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-format=mixed
6)现在需要重启mysql:systemctl restart mysqld
7)然后查看主服务器状态:show master status
5.现在开始配置从数据库:
1)从服务器,同理:
server-id=2
replicate-do-db = 同步的数据库
replicate-ignore-db = 非同步的数据库
relay-log=mysql-bin
2)重启mysql:systemctl restart mysqld
3)现在配置连接主服务器的信息:
mysql> stop slave;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.233',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='repl123',
-> MASTER_LOG_FILE='mysql-bin.000002',
-> MASTER_LOG_POS=313;
mysql> start slave;
4)查看从服务器状态:mysql>show slave status \G;
5)开始测试数据同步。