CentOS 7 安装 MySQL 5.7
在 CentOS 7 系统上通过 tar.gz 压缩包安装 MySQL 5.7,可遵循以下简洁且正确的步骤。本文以 mysql-5.7.44 版本为例进行演示。
一、准备工作
1. 软件版本
- 操作系统 : CentOS 7.9 (本文基于
CentOS-7-x86_64-Minimal-2009.iso) - MySQL 版本 : MySQL 5.7 (本文以
mysql-5.7.44版本为例进行安装示范)
2. 获取 MySQL 安装包
首先,需要将下载的 MySQL 安装包(例如 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz)放到 CentOS 服务器上。
- 在本地电脑上,访问 MySQL 官方归档网站下载所需的版本:
- MySQL 5.7 下载地址 : https://downloads.mysql.com/archives/community/
- 在页面上,请按以下步骤选择正确的版本:
- Product Version :
5.7.44(或所需的其他 5.7 版本) - Operating System :
Linux - Generic - OS Version :
Linux - Generic (glibc 2.12) (x86, 64-bit)
- Product Version :
- 在筛选出的列表中,找到名为
mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz的文件并下载。 - 下载完成后,使用文件传输工具(如 Xftp 或 scp)将安装包上传到服务器的任意目录(例如
/root)。- 关于如何使用 Xftp,可以参考教程:《如何使用 Xshell 8 连接到一台 CentOS 7 电脑(服务器)》中的文件传输部分。
3. 检查并卸载旧版本
首先,检查系统是否已安装 MariaDB 或其他版本的 MySQL,如果存在,请将其卸载以避免冲突。
bash
# 检查 MariaDB
rpm -qa | grep mariadb
# 如果存在,则卸载
rpm -e --nodeps `rpm -qa | grep mariadb`
# 检查旧版 MySQL
rpm -qa | grep mysql
# 如果存在,则卸载
rpm -e --nodeps `rpm -qa | grep mysql`
4. 检查并安装依赖库
MySQL 5.7 需要 libaio 和 numactl 库。可先用以下命令检查它们是否已安装:
bash
# 检查 libaio 是否安装
rpm -qa | grep libaio
# 检查 numactl 是否安装
rpm -qa | grep numactl
如果对应的命令没有任何输出,则表示该库尚未安装。执行以下命令来安装它们:
bash
yum -y install libaio numactl
5. 创建 MySQL 用户和组
出于安全考虑,需要创建一个专门的用户和组来运行 MySQL 服务。
bash
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
二、安装与初始化
1. 解压 tar.gz 文件
假设安装包 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 已上传到服务器的 /root 目录下。
bash
cd /root
tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
2. 移动并重命名目录
为了方便管理,将解压后的目录移动到 /usr/local 并重命名为 mysql。
bash
mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
3. 创建数据目录并授权
在 MySQL 安装目录下创建用于存放数据的 data 目录,并将整个 MySQL 目录的所有权赋予之前创建的 mysql 用户和组。
bash
mkdir -p /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/
4. 编辑配置文件
创建并编辑 MySQL 的主配置文件 /etc/my.cnf。
bash
vi /etc/my.cnf
将以下基础配置内容粘贴进去:
ini
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
character-set-server=utf8
socket=/var/lib/mysql/mysql.sock
pid-file=/usr/local/mysql/data/mysql.pid
log-error=/var/log/mysqld.log
5. 创建并授权相关目录和文件
根据 my.cnf 的配置,需要确保 mysql 用户有权访问 socket 目录和日志文件。
bash
# 创建并授权 socket 目录
mkdir -p /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
# 创建并授权日志文件
touch /var/log/mysqld.log
chown mysql:mysql /var/log/mysqld.log
6. 初始化数据库
进入 MySQL 的 bin 目录执行初始化命令。 请务必记下初始化过程中生成的临时密码。
bash
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成后,查看日志文件获取临时密码:
bash
grep 'temporary password' /var/log/mysqld.log
三、启动与安全设置
1. 设置服务并启动
将 MySQL 的服务脚本复制到系统服务目录,并设置为开机自启。
bash
# 复制服务脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 添加到服务列表
chkconfig --add mysqld
# 设置开机自启
chkconfig mysqld on
# 启动 MySQL 服务
service mysqld start
2. 检查服务状态
可使用以下命令来确认服务的自启设置和当前运行状态。
bash
# 检查是否已设置开机自启
chkconfig --list mysqld
# 检查当前服务运行状态
service mysqld status
如果
chkconfig命令的输出类似mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off,表示常用的运行级别(2, 3, 4, 5)已设为开机自启。同时,如果service命令显示服务为SUCCESS! MySQL running,则表示服务当前正在运行。
3. 创建命令软链接
为了方便在任何路径下都能使用 mysql 命令,需要创建一个软链接。
bash
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
4. 登录并修改密码
使用之前获取的临时密码登录 MySQL。
bash
mysql -u root -p
进入 MySQL 后,立即修改 root 用户的密码。
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword';
将
YourNewStrongPassword替换为新密码。
5. 运行安全脚本 (可选但推荐)
为了提高安全性,可以运行 mysql_secure_installation 脚本。
bash
/usr/local/mysql/bin/mysql_secure_installation
根据提示进行操作,包括设置密码策略、移除匿名用户、禁止 root 远程登录等。
至此,mysql-5.7.44 已成功安装并运行在 CentOS 7 系统上。