二进制部署mysql--一主两从
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