二进制部署mysql--一主两从

发布时间 2023-10-24 11:39:19作者: 买定灬离手

mysql 二进制部署--一主两从

环境准备

主机 角色
192.168.0.165 master
192.168.0.166 salve
192.168.0.167 salve

查看防火墙服务是否关

systemctl status firewalld
systemctl stop  firewalld
systemctl disable firewalld

关闭selinux

#临时关闭
setenforce 0
getenforce 
#永久关闭
sed -i '7c SELINUX=disabled' /etc/selinux/config

清除系统自带的mariadb数据库服务相关的程序

rpm -qa|grep mariadb

yum remove -y mariadb-libs

安装数据库服务程序所需的依赖软件

yum install -y libaio-devel

如果是内网环境,没办法下载,软件已经打包好,在libaio.tar.gz

上传 libaio.tar.gz
tar xf libaio.tar.gz
yum -y localinsall libaio/*.rpm

部署流程

1、上传mysql tar包

2、解压软件包

tar xf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz  -C /usr/local

3、修改数据库服务程序目录的名字

cd /usr/local
mv mysql-5.7.43-linux-glibc2.12-x86_64  mysql

4、添加环境变量:

vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin

5、重新加载环境变量

source /etc/profile

6、创建mysql 用户

useradd mysql
chown -R mysql:mysql /usr/local/mysql  

7、初始化数据库(注意修改用户)

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

会有密码生成记得记录下来,例如:root@localhost: lNqep2ywmg=T

8、设置数据库服务程序启动运行文件

cp  /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

9、配置文件my.cnf

master 主节点的 /etc/my.cnf

[mysqld]
user=mysql
port=3306
lower_case_table_names = 1
wait_timeout=300
max_allowed_packet = 1024M
max_connections = 1000
server-id=1        ##各节点的id必须唯一
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
character_set_server=utf8mb4
skip_name_resolve=ON   ##关闭名称解析
gtid-mode=on    ##启动gtid类型
enforce-gtid-consistency=true  ##强制gtid的一致性
log-slave-updates=1  ##slave更新是否记录日志
log-bin=mysql-bin  ##开启二进制日志
relay-log=relay-log  ##开启中继日志

slave 节点的 /etc/my.cnf

[mysqld]
user=mysql
port=3306
lower_case_table_names = 1
wait_timeout=300
max_allowed_packet = 1024M
max_connections = 1000
server_id=2        ##各节点的id必须唯一
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
character_set_server=utf8mb4
skip_name_resolve=ON  ##关闭名称解析
gtid-mode=on  ##启动gtid类型
enforce-gtid-consistency=true  ##强制gtid的一致性
log-slave-updates=1  ##slave更新是否记录日志
log-bin=mysql-bin  ##开启二进制日志
relay-log=relay-log  ##开启中继日志
read_only=on  ##从节点开启只读
relay_log_purge=0  ##是否自动清空不需要的中继日志

10、启动和停止数据库服务

# 启动命令
service mysqld start
# 当看到  SUCCESS!  则成功
# 停止命令
service mysqld stop
##将mysql设为系统服务
chkconfig --add mysqld

##设置mysql开机自启
chkconfig mysqld on

##启动msyql服务
systemctl start mysqld

11、配置mysql

登录进去修改密码

# mysql -h 服务器ip -u 用户名 -p密码(如果在命令行输入密码,-p和密码之间不能有空格)
mysql -uroot -p上面记录的密码
> alter user root@localhost identified by '123456';  #修改root 密码为123456

主库执行

# 设置数据库的复制权限  从库可以用slve用户连接到主库,并拥有复制权限
grant replication slave,replication client on *.* to 'slave'@'192.168.0.%' identified by '123456';

#查看主库状态:
show master status;

从库执行

#设定从主库同步
change master to
 MASTER_HOST='192.168.0.165', 
 MASTER_PORT=3306,
 MASTER_USER='slave',  
 MASTER_PASSWORD='123456', 
 MASTER_AUTO_POSITION=1;  
 
#启动从库同步开关
start slave;
#查看从库状态,检查主从同步是否配置成功
show slave status \G
#当看到以下为 Yes 则成功
#Slave_IO_Running: Yes
#Slave_SQL_Running: Yes