centos7 离线安装mysql8 并实现主从架构

整体架构概述
主服务器 (Master): 负责处理写操作,并将数据的变更记录到二进制日志 (Binary Log) 中。
从服务器 (Slave):   从主服务器复制二进制日志,并在本地重放这些操作,以保持与主服务器的数据一致。

第一阶段:准备工作 (在主、从服务器上执行)
1. 环境确认
确保您有两台安装了 CentOS 7 的服务器,并且它们之间网络互通(可以互相 ping 通)。假设它们的 IP 地址如下:

主服务器 (Master): 192.168.88.128

从服务器 (Slave): 192.168.88.102

关闭防火墙和 SELinux(生产环境请谨慎操作,建议配置防火墙规则)
# 临时关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 临时关闭 SELinux
setenforce 0
# 永久禁用 SELinux,需要重启生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2. 离线下载 MySQL 8 安装包
在一台有网络的机器上,访问 MySQL 官方 Yum 仓库或直接下载 RPM Bundle:
https://dev.mysql.com/downloads/mysql/

选择对应的版本,例如 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit) 的 RPM Bundle (mysql-8.0.*-el7.x86_64.rpm-bundle.tar)。

将下载好的 mysql-8.0.*-el7.x86_64.rpm-bundle.tar 文件通过 U 盘或内部网络传输到两台 CentOS 7 服务器的相同目录下,例如 /opt/mysql。


3. 卸载系统自带的 MariaDB
CentOS 7 默认可能安装了 MariaDB,它会与 MySQL 冲突,必须先卸载。
# 检查是否已安装
rpm -qa | grep mariadb

# 如果存在,则卸载
rpm -e --nodeps mariadb-libs


第二阶段:离线安装 MySQL 8 (在主、从服务器上执行)
1. 解压并安装 RPM 包
进入存放安装包的目录。

cd /opt/mysql
tar -xvf mysql-8.0.*-el7.x86_64.rpm-bundle.tar

# 使用 rpm 命令按顺序安装必要的包
# 注意:安装顺序很重要,因为存在依赖关系。
rpm -ivh mysql-community-common-8.0.*.rpm
rpm -ivh mysql-community-client-plugins-8.0.*.rpm
rpm -ivh mysql-community-libs-8.0.*.rpm
rpm -ivh mysql-community-client-8.0.*.rpm
rpm -ivh mysql-community-icu-data-files-8.0.*.rpm
rpm -ivh mysql-community-server-8.0.*.rpm

# 如果想安装开发包,可以继续安装
# rpm -ivh mysql-community-devel-8.0.*.rpm

2. 初始化 MySQL 并设置开机自启

# 初始化数据库,会生成 root 的临时密码
mysqld --initialize --user=mysql --console
# 请务必记录最后一行显示的临时密码,例如:`[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Jqkfg&a!h1Q?`

查看 MySQL 日志:查看默认密码
MySQL 在安装和初始化时会记录一些信息,包括临时密码。你可以查看 MySQL 的错误日志文件来找到这个密码。通常,
日志文件的位置在 /var/log/mysqld.log 或 /var/log/mysql/mysql.log

# 更改数据目录的权限
chown -R mysql:mysql /var/lib/mysql/

# 启动 MySQL 服务并设置开机自启
systemctl start mysqld
systemctl enable mysqld

3. 修改 root 密码并进行安全设置
使用初始密码登录,并立即修改密码。

mysql -u root -p
# 输入刚才记录的临时密码

在 MySQL 提示符下执行:

-- 修改 root 用户密码,请将 'YourNewStrongPassword!123' 替换为你的强密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '#Wa123456';

message from server: "Host '192.168.88.1' is not allowed to connect to this MySQL server"  使用客户端连接报错
use mysql;
update user set host = '%' where user='root';
flush privileges;

如果使用的是 dbveaver 需要将alowPublickKeyRetrieval 的客户端配置值改为 true 

todo  .....................


 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐