CentOS 7.9 通过二进制包安装 MySQL 8.0.32 详细教程
本文提供在 CentOS 7.9 系统上通过二进制压缩包手动安装和配置 MySQL 8.0.32 的完整操作指南,重点解决目录权限、配置文件编写、初始化及 Systemd 守护进程设置等问题。
下载与解压安装包
首先从 MySQL 官网下载社区版的 .tar.xz 格式二进制安装包。该版本包含最小安装组件,适合需要定制化部署的场景。
进入下载目录,依次进行两次解压操作:先解压 xz 压缩层,再解压 tar 归档文件。
xz -dv mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar
将解压后的内容复制到标准安装路径 /usr/local/mysql:
sudo cp -r mysql-8.0.32-linux-glibc2.12-x86_64/* /usr/local/mysql
创建用户与设置权限
出于安全考虑,建议使用专用的无登录权限用户运行 MySQL 服务。执行以下步骤创建用户组和用户:
sudo groupadd mysql
sudo useradd mysql -s /usr/sbin/nologin -g mysql
随后修改安装目录的所有者,确保只有 mysql 用户可读写相关数据:
chown -R mysql:mysql /usr/local/mysql/
编辑配置文件 my.cnf
在 /etc/my.cnf 创建并编辑配置文件,定义基础目录、数据路径及字符集等参数:
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
# 基础目录
basedir=/usr/local/mysql/
# 数据目录
datadir=/var/lib/mysql/data/
port=3306
innodb_file_per_table=1
character-set-server=UTF8MB4
socket = /var/lib/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mysql/error.log
pid-file=/usr/local/mysql/mysqld.pid
tmpdir=/var/lib/mysql/mysql
初始化数据库
在启动前需执行初始化命令,系统会自动生成必要的系统表和日志目录。**注意:终端输出的初始 root 密码至关重要,请务必复制保存**。
sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize
启动服务并修改密码
以后台方式启动 MySQL 进程:
sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql
连接数据库并使用初始化时获得的临时密码登录,随后立即修改 root 密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
配置 Systemd 自动管理
为了让 MySQL 随系统启动并便于管理服务,创建 Systemd 单元文件:
sudo vim /etc/systemd/system/mysql.service
写入以下配置内容:
[Unit]
Description=MySQL Server
After=network.target syslogger.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
最后启用并启动服务:
# 使能开机自启
sudo systemctl enable mysql.service
# 启动服务
sudo systemctl start mysql.service
# 检查状态
sudo systemctl status mysql.service
验证安装结果
重启服务器后,再次检查 systemctl status mysql.service,确认服务是否正常运行且端口监听正常,即可完成全部部署流程。
以上就是 CentOS 7.9 通过二进制包安装 MySQL 8.0.32 的详细教程,更多关于 Linux 服务器环境搭建的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













