1.准备环境
2台服务器—区分好主节点和从节点(两台服务器都需要安装好mysql)
mysql安装步骤:个人主页
linux安装配置Mysql-允许远程访问(Mysql版本为 5.7.39)
2.开始搭建mysql集群
2.1:每个人mysql安装的路径不同
配置主服务器
1): 使用:查看my.cnf文件的位置
find / -name my.cnf
进入my.cnf
vi /etc/my.cnf
配置:
#mysql 服务ID,保证整个集群环境中唯一
server-id=1
#mysql binlog 日志的存储路径和文件名
log-bin=/var/lib/mysql/mysqlbin
#是否只读,1 代表只读, 0 代表读写
read-only=0
#忽略的数据, 指不需要同步的数据库
binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01
:wq保存并退出
2):执行完毕之后,需要重启Mysql:
systemctl restart mysqld
3):创建同步数据的账户,并且进行授权操作:
设置远程访问。(如果设置过允许mysql远程访问—那么该步骤可以省略)
grant replication slave on *.* to 'root'@'192.168.192.131' identified by 'root';
flush privileges;
4): 如果两台服务器是克隆出来的(不是则跳过)
使用代码查看两台的UUID是否相同
show variables like '%server_uuid%';
如果相同删除auto.cnf这个文件或者修改UUID
执行命令查看auto.cnf文件的位置
find -name auto.cnf
删除:直接执行命令删除该文件(两个服务器删除一个就可以了,都删除也行)
rm -rf ./mysql/data/auto.cnf
修改:执行命令修改该文件的值(修改uuid的值,随便改,只要不一样就可以)
vi ./mysql/data/auto.cnf
- 重新进入mysql查看master状态
show master status;
字段含义:
File : 从哪个日志文件开始推送日志文件
Position : 从哪个位置开始推送日志
Binlog_Ignore_DB : 指定不需要同步的数据库
搭建从服务器
1)进入my.cnf
vi /etc/my.cnf
配置:
#mysql服务端ID,唯一
server-id=2
#指定binlog日志
log-bin=/var/lib/mysql/mysqlbin`
2) 执行完毕之后,需要重启Mysql:
systemctl restart mysqld
systemctl restart mysqld
3) 进入有MySQL执行如下指令 :
change master to master_host= '主服务器ip', master_user='root', master_password='123456', master_log_file='mysqlbin.000002', master_log_pos=553;
对比这张图,
master_host:主节点的ip
master_user:主节点账户
master_password:主节点的密码
master_log_file:主节点二进制文件名,与主节点show master status;查询的结果一致
master_log_pos:同步的位置(我的是533)
指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志。
- 开启同步操作
start slave;
show slave status\G;
两个都为yes,搭建成功
验证:
在主节点创建一个库—从节点也会自动创建一个相应的库