前言
使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。本文主要介绍mysql主从集群搭建通过读写分离解决高并发的场景
一、环境准备
192.168.0.1 : master
192.168.0.2 : slave
二、操作步骤
1.环境检查(主从节点执行)
rpm -qa | grep mariadb
若有安装mariadb,先进行卸载,lib可以保留
rpm -e --nodeps mariadb-server-5.5.68-1.el7.x86_64 mariadb-5.5.68-1.el7.x86_64
2.安装部署(主从节点执行)
上传并解压安装包
tar -xvf mysql-8.0.26-el7-x86_64.tar.gz -C /mysql
mv /mysql/mysql-8.0.26-el7-x86_64/ /mysql/mysql
创建mysql用户并赋权
useradd mysql
chown -R mysql:mysql /mysql/mysql/
创建mysql相关目录
test -d /data/mysql |mkdir -p /data/mysql
test -d /data/tmp |mkdir -p /data/tmp
test -d /data/log |mkdir -p /data/log
创建service服务
cp -a /mysql/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
添加环境变量
echo 'export PATH=$PATH:/mysql/mysql/bin:/mysql/mysql/lib' >> /etc/profile
echo "export PATH" >> /etc/profile
source /etc/profile
上传配置文件并替换
mv /etc/my.cnf /etc/my.cnf.bak
mv /mysql/install/my.cnf /etc/
chown mysql:mysql /etc/my.cnf
my.cnf如图所示
从节点需修改server-id
切换mysql用户
su - mysql (注意 ‘-’ 的前后有空格)
初始化mysql,并记录生成的临时密码
/mysql/mysql/bin/mysqld --user=mysql --basedir=/mysql/mysql --datadir=/data/mysql/ --initialize
启动数据库
service mysql start
3.主节点权限设置(主节点执行)
用之前记录的临时密码登录登录
mysql -uroot -pxxxxxxx
执行sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
update mysql.user set host='%' where user='root';
flush privileges;
create user 'repl'@'%' identified with 'mysql_native_password' by '新密码';
GRANT replication slave ON *.* TO 'repl'@'%';
GRANT replication client ON *.* TO 'repl'@'%';
flush privileges;
show master status
4.从节点同步设置(从节点执行)
用之前记录的临时密码登录登录
mysql -uroot -pxxxxxxx
执行sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
update mysql.user set host='%' where user='root';
flush privileges;
CHANGE MASTER TO
MASTER_HOST='Master节点IP',
MASTER_USER='repl',
MASTER_PASSWORD='Master节点repl用户密码',
MASTER_LOG_FILE='Mster节点show master status命令File值',
MASTER_LOG_POS=Mster节点show master status命令Position值;
start slave;
查看同步情况
show slave status\G;
两项都为yes则为同步成功
5.mysql开机自启动(主从节点执行)
用root用户执行
chmod +x /etc/rc.d/rc.local
echo 'su - mysql -c "service mysql start"' >> /etc/rc.d/rc.local
到这里一个简单的案例基本就分析结束。感谢你的学习。
最后想一起交流技术的可以加我wx: