> 数据库 > MySQL >

mysql数据库集群实现高可用读写分离

mysql主从复制
环境信息

操作系统:centos6.8

#mysql版本
mysql-community-client-5.7.25-1.el6.x86_64.rpm
mysql-community-server-5.7.25-1.el6.x86_64.rpm

#节点
192.168.57.201(主)、192.168.57.202(从)

安装mysql数据库

#192.168.57.202

[root@test202 redis-cluster]# find / -name mysql
/var/lib/mysql
/usr/local/mysql
[root@test202 redis-cluster]# rm -rf /var/lib/mysql
[root@test202 redis-cluster]# rm -rf /usr/local/mysql
[root@test202 redis-cluster]#

#安装server
rpm -ivh mysql-community-server-5.7.25-1.el6.x86_64.rpm --force --nodeps
#安装client

#修改mysql登录密码
#my.cnf
[mysqld]
skip-grant-tables

#直接登录mysql,不需要输入密码
#修改root的密码
flush privileges;

set password for root@localhost = password('123456');

flush privileges;

#注释掉my.cnf
[mysqld]
#skip-grant-tables

#重启mysqld 服务

配置主从同步

#日志文件名称
log-bin=master-a-bin           
#二进制日志的格式,有row、statement和mixed三种类型                        
binlog-format=ROW   
#要求各个服务器的这个id必须不一样
server-id=1         
#同步的数据库名称
binlog-do-db=yidiankt 


配置从服务器登录主服务器的账号授权

grant replication slave on *.* to 'root'@'192.168.57.201' identified by '123456';

flush privileges;

从服务器的配置(my.cnf)

#日志文件名称
log-bin=master-a-bin 
#二进制日志的格式,跟主服务器一样
binlog-format=ROW  
#要求各个服务器的这个id必须不一样
server-id=2 
#中继日志执行之后,这些变化是否需要计入自己的binarylog。当你的从服务器需要作为另外一个服务器的主服务器的时候需要打开。就是双主互相备份,或者多主循环备份。
log-slave-updates=true


重启主服务器

service mysqld restart

show master status;
1
2
3
从服务器配置

#重启
service mysqld restart

change master to master_host='192.168.57.201',master_user='root',master_password='123456',master_port=3306,master_log_file='master-a-bin.000001',master_log_pos=154;

#开启从服务器
start slave;

#查看状态
show slave status \G;

测试主从同步

CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


(责任编辑:IT)