centos stream 8 安装MySQL5.7,主从库搭建步骤

最近使用最新的CentOS Stream release 8 百度各种大佬mysql5.7主从复制的搭建,一步步去摸索搭建,最后验证成功,所以整理出个文档,希望能帮助需要使用的人儿。
如果是新服务器,需要安装
yum -y install vim
yum -y install wget
yum -y install libncurses*
等等等等
 

1、服务环境

master:10.110.238.21,centos stream 8,mysql5.7

slave:  10.110.238.22,centos stream 8,mysql5.7

注意两服务下载的mysql版本需要一致。

注:以下两台服务器按同样步骤操作

2、创建安装目录和下载安装包

mkdir /apps/mysql57 -p

cd /apps/mysql57

检查自带mariadb:rpm -qa | grep mariadb

有的话执行rpm -e --nodeps mariadb-libs-xxxxxxx 

下载mysql

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

得到mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql

新建mysql用户、组及目录:

groupadd mysql

useradd -r -s /sbin/nologin -g mysql mysql -d /apps/mysql57/mysql

chown mysql.mysql mysql -R

mkdir data

chown -R mysql /apps/mysql57/data

3准备安装:

cd mysql

bin/mysqld --initialize --user=mysql --basedir=/apps/mysql57/mysql --datadir=/apps/mysql57/data

这是安装成功后记录下 临时密码如

A temporary password is generated for root@localhost: To?l;qsfN2Nz

4修改系统配置文件

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

【master】新建并配置vim /etc/my.cnf 

[client]
port=3306
socket=/apps/mysql57/data/mysql.sock

[mysqld]
user = mysql
server-id = 1
innodb_buffer_pool_size = 2G
log_bin = mysql-bin
sync_binlog=0
binlog_format = mixed
expire_logs_days=7
max_binlog_size = 100M
binlog_cache_size=4m
max_binlog_cache_size=512m
lower_case_table_names=1
character-set-server=utf8
max_connections=1000
group_concat_max_len = 204800
max_allowed_packet=32m
log-error=/apps/mysql57/mysql.log
basedir=/apps/mysql57/mysql
datadir=/apps/mysql57/data
socket=/apps/mysql57/data/mysql.sock
pid-file=/apps/mysql57/mysqld.pid

【slave】新建并配置vim /etc/my.cnf 

[client]
port=3306
socket=/apps/mysql57/data/mysql.sock

[mysqld]
user = mysql
server-id = 2
innodb_buffer_pool_size = 2G
log_bin = mysql-bin
sync_binlog=0
binlog_format = mixed
expire_logs_days=7
max_binlog_size = 100M
binlog_cache_size=4m
max_binlog_cache_size=512m
lower_case_table_names=1
character-set-server=utf8
max_connections=1000
group_concat_max_len = 204800
max_allowed_packet=32m
log-error=/apps/mysql57/mysql.log
basedir=/apps/mysql57/mysql
datadir=/apps/mysql57/data
socket=/apps/mysql57/data/mysql.sock
pid-file=/apps/mysql57/mysqld.pid

 vim /etc/profile

找到最后一行:输入export PATH=/apps/mysql57/mysql/bin:$PATH

source /etc/profile

chown -R mysql:mysql /apps/mysql57

5、启动和登录

service mysql start
service mysql status 查看状态 active (running)
以上两台服务器数据库都启动成功!

自动启动:
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on

登录

mysql -u root -p 输入临时密码进行登录
错误:error while loading shared libraries: libncurses.so.5: cannot open shared object file
分析:缺少 libncurses.so.5
yum -y install libncurses*

修改密码 set password=password(‘cX&#2022a');
flush privileges;
以上两库完成安装、登录、修改i密码等相同操作

6、主库调整

创建其他用户:【主库】
create user 'Aydbm'@'localhost' identified by 'X&20%22!';
grant all privileges on *.* to 'Aydbm'@'10.110.238.22' identified by 'X&20%22!';
flush privileges;
use mysql;
select host,user from user;

在主库上操作

授权给从数据库服务器:
GRANT REPLICATION SLAVE ON *.* to 'Aydbm'@'10.110.238.21' identified by 'X&20%22!';
GRANT REPLICATION SLAVE ON *.* to 'Aydbm'@'10.110.238.22' identified by 'X&20%22!';
flush privileges;

 查询主数据库状态

7、从库操作:

change master to master_host='10.110.238.21',master_user='Aydbm',master_password='X&20%22!',master_log_file='mysql-bin.000005',master_log_pos=2316,master_port=3306;

正确执行后启动Slave同步进程
start slave;

在从库中进行主从同步检查
mysql> show slave status\G;
其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常;

如果出现
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
排查如下问题
1.网络不通
2.账户密码错误
3.防火墙
4.mysql配置文件问题
5.连接服务器时语法
6.主服务器mysql权限

centos7防火墙
#进程与状态相关
systemctl start firewalld.service            #启动防火墙
systemctl stop firewalld.service             #停止防火墙
systemctl status firewalld                   #查看防火墙状态
systemctl enable firewalld             #设置防火墙随系统启动
systemctl disable firewalld                #禁止防火墙随系统启动
firewall-cmd --state                         #查看防火墙状态
firewall-cmd --reload                        #更新防火墙规则

#端口控制
firewall-cmd --query-port=8080/tcp             # 查询端口是否开放
firewall-cmd --add-port=8080/tcp --permanent               #永久添加8080端口例外(全局)
firewall-cmd --remove-port=8800/tcp --permanent            #永久删除8080端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent      #永久增加65001-65010例外(全局)
firewall-cmd  --zone=public --add-port=8080/tcp --permanent            #永久添加8080端口例外(区域public)
firewall-cmd  --zone=public --remove-port=8080/tcp --permanent         #永久删除8080端口例外(区域public)
 

主服务器上的操作 验证主从复制效果

创建数据库和数据库表 自己认证下

在这个过程中如果遇到出错等相关问题可留言一起解决/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值