MySQL 数据库主从集群搭建

文章目录

      • 1 准备工作
      • 2 配置主数据库
      • 3 配置从库
      • 4 从库设置只读用户
      • 5 推荐参考资料

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 为指针位置,这两个字段是数据同步的关键

MySQL 数据库主从集群搭建_第1张图片

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 则从库同步状态良好

MySQL 数据库主从集群搭建_第2张图片

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

4 从库设置只读用户

登录从库,添加只读用户

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

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

刷新权限

FLUSH PRIVILEGES;

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

5 推荐参考资料

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

MySQL主从复制配置

你可能感兴趣的:(Tools,mysql,数据库,服务器,主从集群)