# 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' &gt;&gt; /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 &amp;&amp; firewall-cmd --reload

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