目 录CONTENT

文章目录

Rocky 9.6安装MySQL 8.0.32:RPM包安装完全指南

Administrator
2026-03-25 / 0 评论 / 0 点赞 / 3 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Rocky 9.6安装MySQL 8.0.32:RPM包安装完全指南

应用场景背景

在企业级Linux环境中部署MySQL 8.0.32数据库,提供高性能数据存储解决方案,满足业务系统的数据持久化需求,特别适用于对数据库稳定性与性能要求较高的生产环境。

为什么选择RPM方式安装MySQL

在Rocky Linux 9.6这样的RHEL系发行版上,使用RPM包安装MySQL有诸多优势:精确控制版本、离线安装能力、与系统包管理器深度集成,以及更好的依赖管理。相比YUM/DNF仓库安装,RPM包安装能确保安装特定版本的MySQL,非常适合需要严格版本控制的企业环境。

安装前准备

在安装MySQL之前,需要清理系统中可能存在的MariaDB或其他冲突包:

# 停止可能存在的mariadb服务
systemctl stop mariadb

# 删除可能存在的mariadb包
rpm -e --nodeps mariadb-server mariadb

# 删除旧的配置和数据目录
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql

安装包下载与解压

wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar

ll mysql*
-rw-r--r--   1 root root  811M Dec 17  2022 mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar

# 解压安装包
tar -xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar

RPM包安装步骤

整理安装包

# 创建安装包目录
mkdir -p mysql_install_package

# 移动MySQL相关RPM包到安装目录
mv mysql-community-* ./mysql_install_package/

cd mysql_install_package/

安装MySQL组件

# 使用dnf安装所有MySQL组件
dnf install -y *.rpm

系统配置(解决Inotify限制问题)

如果在启动MySQL服务时遇到 "Failed to allocate directory watch: Too many open files" 错误,这表明系统级的inotify监控资源耗尽。在Rocky Linux 9 / RHEL 9上,MySQL 8.0启动时会尝试监控数据目录和日志目录的变化,如果系统的fs.inotify.max_user_watches设置太小,就会报这个错。

检查并增加inotify监控上限(最可能的直接原因)

这个错误通常直接对应inotify资源不足。

# 查看当前值
sysctl fs.inotify.max_user_watches
sysctl fs.inotify.max_user_instances

如果值小于524288,通常是不够的。

# 临时修改(立即生效,重启失效)
sysctl -w fs.inotify.max_user_watches=524288
sysctl -w fs.inotify.max_user_instances=524288
# 永久修改(写入配置文件)
# 创建 /etc/sysctl.d/99-mysql-inotify.conf
cat > /etc/sysctl.d/99-mysql-inotify.conf << EOF
fs.inotify.max_user_watches = 524288
fs.inotify.max_user_instances = 524288
EOF
# 然后重载配置
sysctl -p /etc/sysctl.d/99-mysql-inotify.conf

MySQL服务初始化和启动

启动MySQL服务

# 启动MySQL服务
systemctl start mysqld

# 设置开机自启动
systemctl enable mysqld

# 检查服务状态
systemctl status mysqld

获取初始密码

安装完成后,MySQL会生成一个临时密码,可以通过以下命令查看:

# 查看临时密码
grep 'temporary password' /var/log/mysqld.log

安全设置与用户管理

登录并修改密码

# 使用临时密码登录
mysql -u root -p

# 默认密码什么都不能做,因此需要修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Huawei@123';

# 修改密码策略(可选)
SHOW VARIABLES LIKE "%validate_password%";

配置远程访问权限

-- 第一步:创建 root 的远程用户 (% 代表任意主机)
-- 如果该用户已存在,可能会报错 "User already exists",此时可跳过此步直接执行第二步,或使用 ALTER USER
CREATE USER 'root'@'%' IDENTIFIED BY 'Huawei@123';

-- 【备选】如果上面报错说用户已存在,请执行这句来修改密码:
-- ALTER USER 'root'@'%' IDENTIFIED BY 'Huawei@123';

-- 第二步:授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

-- 第三步:刷新权限使其立即生效
FLUSH PRIVILEGES;

运行安全脚本

# 执行安全配置脚本
mysql_secure_installation

MySQL配置文件详解

在修改MySQL配置文件前,建议先备份原始配置文件:

# 备份原始配置文件
cp -rp /etc/my.cnf /etc/my.cnf.bak

MySQL的主要配置文件位于/etc/my.cnf,可以根据需要进行调整:

[mysqld]
secure-file-priv= NULL
max_connections=5000
max_connect_errors=1000
character_set_server=utf8mb4
wait_timeout = 300
interactive_timeout = 300
transaction-isolation=READ-COMMITTED
tmp_table_size=128M
long_query_time=10
slow_query_log=1
slow_query_log_file=/var/run/mysqld/mysql-slow.log
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

修改配置文件后,需要重启MySQL服务:

# 重启MySQL服务使配置生效
systemctl restart mysqld

关键配置参数说明

参数含义可选值默认值
datadir数据存储目录自定义路径/var/lib/mysql
max_connections最大连接数正整数151
innodb_buffer_pool_sizeInnoDB缓冲池大小内存大小系统内存的一定比例
default_authentication_plugin默认认证插件mysql_native_password/caching_sha2_passwordcaching_sha2_password
bind_address绑定IP地址IP地址或*localhost

验证安装

# 检查MySQL服务状态
systemctl status mysqld

# 检查端口监听
netstat -tlnp | grep 3306

# 测试连接
mysql -h localhost -u root -p

注意事项与最佳实践

  1. 认证插件差异:MySQL 8.0.32版本仍可使用default_authentication_plugin=mysql_native_password配置项,这与8.4版本有所不同。

  2. 初始密码:首次安装后,必须从日志中获取临时密码才能登录。

  3. 安全设置:建议运行mysql_secure_installation脚本进行基本安全设置。

  4. 服务管理:使用systemctl管理MySQL服务,而不是手动启动。

  5. 防火墙设置:如需远程访问,确保防火墙允许3306端口。

  6. 配置文件备份:修改配置文件前,务必先备份原文件。

常见问题解决

服务启动失败

检查/var/log/mysqld.log日志文件,确认错误原因。

无法登录

确认使用初始密码登录,然后立即更改密码。

权限问题

确保使用正确的用户权限启动MySQL服务。

Inotify限制错误

如遇"Failed to allocate directory watch: Too many open files"错误,需调整系统Inotify限制:

  • 检查fs.inotify.max_user_watchesfs.inotify.max_user_instances的值,若小于524288则需增加
  • 修改/etc/sysctl.d/99-mysql-inotify.conf文件,配置合适的inotify参数
  • 重启系统或执行sysctl -p使配置生效

性能优化建议

对于生产环境,建议根据服务器资源配置以下参数:

  • innodb_buffer_pool_size: 设置为物理内存的60%-70%
  • max_connections: 根据并发需求调整
  • innodb_log_file_size: 增加可提高写入性能
  • query_cache_size: 根据读写比例调整

监控与维护

定期检查MySQL运行状态,监控以下指标:

  • 连接数使用情况
  • 查询性能
  • 磁盘空间使用
  • 慢查询日志

参考资料

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区