Skip to main content

redhat9二进制安装mysql

虽然目前 RHEL 9 系列(截止 2026 年)通常以 9.4 或 9.5 为主,但二进制安装(Generic Binaries)的方法在所有 RHEL 9 版本中是通用的。

使用二进制包安装的好处是**不污染系统库**,且可以自定义安装路径。以下是标准安装流程:

### 一、 环境准备

在安装之前,需要清理系统自带的 mariadb 库并安装必要的依赖。

 1. **卸载冲突包:**

   ```bash

   dnf remove -y mariadb-libs

   

   ```

 2. **安装依赖库:**

   MySQL 运行需要 libaio 和 ncurses-compat-libs(RHEL 9 可能需要 ncurses-libs)。

   ```bash

   dnf install -y libaio ncurses-libs pkgconf-pkg-config

   

   ```

### 二、 下载与解压

建议从 [可疑链接已删除] 下载对应 **Linux - Generic (glibc 2.28) (x86, 64-bit)** 的版本。

 1. **创建用户与组:**

   ```bash

   groupadd mysql

   useradd -r -g mysql -s /bin/false mysql

   

   ```

 2. **解压安装包:**

   假设你已下载 mysql-8.0.xx-linux-glibc2.28-x86_64.tar.xz。

   ```bash

   tar -xvf mysql-8.0.xx-linux-glibc2.28-x86_64.tar.xz -C /usr/local/

   cd /usr/local/

   mv mysql-8.0.xx-linux-glibc2.28-x86_64 mysql

   

   ```

### 三、 目录配置与初始化

 1. **创建数据目录:**

   ```bash

   mkdir -p /data/mysql

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

   chown -R mysql:mysql /data/mysql

   

   ```

 2. **初始化数据库:**

   执行后请**务必记录**输出末尾生成的临时密码。

   ```bash

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

   

   ```

### 四、 配置文件 (/etc/my.cnf)

创建一个基础配置文件,确保路径指向正确。

```ini

[mysqld]

basedir=/usr/local/mysql

datadir=/data/mysql

socket=/tmp/mysql.sock

port=3306

user=mysql


[mysql]

socket=/tmp/mysql.sock


```

### 五、 配置服务启动

 1. **设置环境变量:**

   ```bash

   echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile

   source /etc/profile

   

   ```

 2. **配置 Systemd 服务:**

   创建 /etc/systemd/system/mysqld.service 文件:

   ```ini

   [Unit]

   Description=MySQL Server

   After=network.target

   

   [Service]

   Type=simple

   User=mysql

   Group=mysql

   ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

   LimitNOFILE=65535

   

   [Install]

   WantedBy=multi-user.target

   

   ```

 3. **启动并自启:**

   ```bash

   systemctl daemon-reload

   systemctl enable --now mysqld

   

   ```

### 六、 安全加固

使用刚才记录的**临时密码**登录:

```bash

mysql -u root -p


```

进入后修改密码并允许远程访问(按需):

```sql

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';

FLUSH PRIVILEGES;


```

### 💡 避坑指南

 * **GLIBC 版本:** RHEL 9 使用的是较新的 glibc (2.34+),因此务必选择 glibc 2.28 或更高版本的二进制包,不要错下成 2.12/2.17 的版本。

 * **防火墙:** 如果需要远程连接,记得开启端口:

   firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload

 * **SELinux:** 如果启动失败,可以先尝试 setenforce 0 排除权限干扰,或者针对数据目录设置上下文。