MySQL 数据库主从集群搭建

1 准备工作

  • 1 选择一个服务器当做主服务器,将服务器上需要的数据进行备份

  • 2 安装从库的 MySQL,需要与主服务器的版本保持一致

  • 3 将主服务器上的数据同步到从库中(主从集群只会同步创建集群之后的数据操作,对于原有的数据不会同步)

2 配置主数据库

修改配置文件

vim /etc/my.cnf

添加配置

[mysqld]
log-bin=mysql-bin
server-id=1

重启 mysql 服务(centOS 7+)

systemctl restart mysqld

使用命令行以 root 用户进入 MySQL

mysql -u root -p

输入密码,进入

创建拥有从节点同步权限的用户

GRANT REPLICATION SLAVE ON *.* TO 'userName'@'%' IDENTIFIED BY 'yourPassword';

其中 userName 为用户名,yourPassword 为密码

刷新权限

FLUSH PRIVILEGES;

查询主库状态

show master status;

记录下 FilePosition 字段的值

其中 File 为操作日志文件,Position 为指针位置,这两个字段是数据同步的关键

image-20220212153754171

3 配置从库

修改配置文件

vim /etc/my.cnf

添加配置

[mysqld]
server-id=2

注意: 每一个服务器的 server-id 都不能重复

重启 mysql 服务(centOS 7+)

systemctl restart mysqld

使用命令行以 root 用户进入 MySQL

mysql -u root -p

输入密码,进入

执行同步语句

CHANGE MASTER TO MASTER_HOST='masterServerIp', MASTER_PORT=masterPort, MASTER_USER='masterUser', MASTER_PASSWORD='masterPassword', MASTER_LOG_FILE='masterLogFile', MASTER_LOG_POS=masterPosition;

其中 masterServerIp 为主库服务器地址(ip或域名)

masterPort 为主库 mysql 端口(需要确保外网可访问)

masterUser 为刚创建的用于向从库同步数据的用户

masterPassword 为刚创建的用于向从库同步数据的用户密码

masterLogFile 为主库的日志文件名,对应字段 File

masterPosition 为主库指针位置,对应字段 Position

启动从库同步

start slave;

查询从库同步状态

show slave status\G;

主要关注字段: Slave_IO_Running,Slave_SQL_Running,这两个字段值为 Yes 则从库同步状态良好

image-20220212155245546

至此,主从集群的配置已经基本完成

4 从库设置只读用户

登录从库,添加只读用户

GRANT SELECT ON *.* TO 'userName'@'%' IDENTIFIED BY 'yourPassword';

其中 userName 为数据库用户名,yourPassword 为用户密码

刷新权限

FLUSH PRIVILEGES;

在连接从库时使用只读用户

5 推荐参考资料

MySQL集群部署(使用多个MySQL实例模拟)

MySQL主从复制配置

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值