CentOS 7/8 安装MySQL最新版教程
CentOS 7/8 安装 MySQL 最新版超详细教程
在 CentOS 系统上安装 MySQL 是许多服务器管理员和开发人员的常见任务。本教程将详细指导您在 CentOS 7 和 CentOS 8 上安装最新版本的 MySQL。我们将涵盖从添加 MySQL 官方 YUM 仓库到配置安全设置的所有步骤,并提供故障排除提示,确保您能顺利完成安装。
为什么选择官方 YUM 仓库?
虽然 CentOS 的默认软件仓库中也包含 MySQL,但版本通常较旧。为了获得最新的功能、安全补丁和性能改进,强烈建议使用 MySQL 官方提供的 YUM 仓库进行安装。
本教程涵盖内容:
- 准备工作: 更新系统、安装必要工具。
- 添加 MySQL YUM 仓库: 获取并安装 MySQL 官方仓库配置。
- 安装 MySQL 服务器: 使用 YUM 安装 MySQL Server、Client 和相关组件。
- 启动 MySQL 服务: 启动 MySQL 服务并设置为开机自启。
- 安全配置: 运行安全配置脚本,设置 root 密码、删除匿名用户等。
- 连接 MySQL: 使用 MySQL 客户端连接到服务器。
- 基本 MySQL 操作: 创建数据库、用户、授权等。
- 防火墙设置(可选): 配置防火墙以允许 MySQL 连接。
- 故障排除: 常见问题及解决方法。
- CentOS 7 与 CentOS 8 的差异(如有): 针对两个版本系统的特别说明。
1. 准备工作
在开始安装之前,确保您的 CentOS 系统是最新的,并安装了一些必要的工具。
-
更新系统:
bash
sudo yum update -y这条命令将升级所有已安装的软件包到最新版本。
-y
选项表示自动回答所有提示为“yes”。 -
安装常用工具(可选):
bash
sudo yum install -y wget nanowget
用于下载文件,nano
是一个简单易用的文本编辑器(您也可以使用您喜欢的编辑器,如vim
)。
2. 添加 MySQL YUM 仓库
MySQL 官方提供了一个 YUM 仓库,其中包含最新版本的 MySQL 软件包。我们需要下载并安装这个仓库的配置文件。
-
访问 MySQL 官方下载页面:
在浏览器中打开 MySQL YUM 仓库下载页面:https://dev.mysql.com/downloads/repo/yum/
-
选择适合您系统的版本:
根据您的 CentOS 版本(7 或 8),选择相应的 RPM 包。通常,页面上会直接提供最新版本的下载链接。
-
下载 RPM 包:
使用
wget
命令下载 RPM 包(请替换为实际的下载链接):bash
wget https://dev.mysql.com/get/mysql80-community-release-el7-x.noarch.rpm # CentOS 7 示例
wget https://dev.mysql.com/get/mysql80-community-release-el8-x.noarch.rpm # CentOS 8 示例
注意,这个包的版本号可能会变,一定要去官网下载页面确认最新的版本号 -
安装仓库配置:
使用
yum localinstall
命令安装下载的 RPM 包:bash
sudo yum localinstall mysql80-community-release-el7-x.noarch.rpm # CentOS 7 示例
sudo yum localinstall mysql80-community-release-el8-x.noarch.rpm # CentOS 8 示例 -
验证仓库是否添加成功:
bash
yum repolist enabled | grep "mysql.*-community.*"如果看到类似
mysql80-community
、mysql-connectors-community
、mysql-tools-community
等仓库列表,则表示添加成功。
3. 安装 MySQL 服务器
现在可以开始安装 MySQL 服务器了。
-
安装 MySQL:
bash
sudo yum install -y mysql-community-server这条命令将安装 MySQL 服务器、客户端以及一些必要的依赖项。
CentOS 8 特别说明: 在 CentOS 8 上,可能需要先禁用默认的 MySQL 模块:
bash
sudo yum module disable mysql -y然后再执行安装命令。
-
安装过程中的提示:
安装过程中可能会提示您导入 GPG 密钥。这是 MySQL 官方用于验证软件包完整性的密钥。通常情况下,您可以选择接受(输入
y
)。
4. 启动 MySQL 服务
安装完成后,我们需要启动 MySQL 服务,并将其设置为开机自启动。
-
启动 MySQL 服务:
bash
sudo systemctl start mysqld -
设置开机自启动:
bash
sudo systemctl enable mysqld -
检查 MySQL 服务状态:
bash
sudo systemctl status mysqld如果看到
active (running)
字样,表示 MySQL 服务正在运行。
5. 安全配置
MySQL 安装后,强烈建议运行安全配置脚本来提高安全性。
-
运行安全配置脚本:
bash
sudo mysql_secure_installation -
脚本交互过程:
- VALIDATE PASSWORD PLUGIN: 是否启用密码验证插件?建议选择
y
,这将强制执行更强的密码策略。 - 设置 root 密码: 为 MySQL 的
root
用户设置一个强密码。请务必记住这个密码! - 移除匿名用户: 建议选择
y
,删除默认存在的匿名用户。 - 禁止 root 远程登录: 建议选择
y
,只允许root
用户从本地(localhost)登录。 - 移除 test 数据库: 建议选择
y
,删除默认的test
数据库。 - 重新加载权限表: 选择
y
,使更改生效。
- VALIDATE PASSWORD PLUGIN: 是否启用密码验证插件?建议选择
6. 连接 MySQL
现在可以使用 MySQL 客户端连接到服务器了。
-
使用 root 用户连接:
bash
mysql -u root -p输入您在安全配置过程中设置的 root 密码。
-
成功连接:
如果一切顺利,您将看到 MySQL 的命令行提示符:
mysql>
7. 基本 MySQL 操作
现在您已经连接到 MySQL 服务器,可以执行一些基本的操作了。
-
查看现有数据库:
sql
SHOW DATABASES; -
创建新数据库:
sql
CREATE DATABASE mydatabase;这将创建一个名为
mydatabase
的新数据库。 -
选择数据库:
sql
USE mydatabase; -
创建新用户并授权:
sql
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
解释:
*CREATE USER
: 创建新用户,myuser
是用户名,localhost
表示只允许本地连接,mypassword
是密码。
*GRANT ALL PRIVILEGES
: 授予用户对mydatabase
数据库的所有权限。
*FLUSH PRIVILEGES
: 刷新权限表,使更改生效。
* 如果要允许用户从其他主机连接,可以将localhost
改为%
,但务必确保密码足够复杂,并且尽量减少远程连接的权限。 -
退出 MySQL 客户端:
sql
exit;
8. 防火墙设置(可选)
如果您的 CentOS 系统启用了防火墙(如 firewalld
),则需要配置防火墙以允许 MySQL 连接。
-
允许 MySQL 默认端口(3306):
bash
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload -
更安全的做法(推荐):
只允许特定 IP 地址或 IP 地址段访问 MySQL 端口:
bash
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload将
192.168.1.0/24
替换为您允许连接的 IP 地址或 IP 地址段。
9. 故障排除
如果在安装或配置过程中遇到问题,以下是一些常见的故障排除方法:
-
MySQL 服务无法启动:
-
检查错误日志:
bash
sudo journalctl -xe | grep mysqld或查看 MySQL 错误日志文件(通常位于
/var/log/mysqld.log
或/var/log/mysql/error.log
)。 -
检查端口是否被占用:
bash
sudo netstat -tulnp | grep 3306 -
确保有足够的内存和磁盘空间。
-
-
无法连接到 MySQL:
- 检查 MySQL 服务是否正在运行。
- 检查用户名和密码是否正确。
- 检查防火墙设置是否允许连接。
- 检查 MySQL 配置文件(
/etc/my.cnf
或/etc/mysql/my.cnf
)中的bind-address
设置。如果设置为127.0.0.1
,则只允许本地连接。
-
忘记 root 密码:
-
停止 MySQL 服务:
bash
sudo systemctl stop mysqld -
以安全模式启动 MySQL(跳过权限检查):
bash
sudo mysqld_safe --skip-grant-tables & -
连接到 MySQL:
bash
mysql -u root -
更改 root 密码:
sql
USE mysql;
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
MySQL 8:
sql
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES; -
退出 MySQL 客户端,停止安全模式下的 MySQL 进程,然后正常启动 MySQL 服务:
bash
exit;
sudo pkill mysqld
sudo systemctl start mysqld
10. CentOS 7 与 CentOS 8 的差异
-
-
默认 MySQL 模块(CentOS 8): CentOS 8 默认包含一个 MySQL 模块,可能需要先禁用它才能安装官方版本。
- 软件包名称: 理论上,CentOS7 和 CentOS8 安装时的软件包名称没有区别。
总结
本教程详细介绍了在 CentOS 7 和 CentOS 8 上安装最新版本 MySQL 的步骤。通过使用 MySQL 官方 YUM 仓库,您可以轻松获得最新功能和安全更新。请务必按照安全配置步骤操作,以保护您的数据库服务器。如果在安装过程中遇到任何问题,请参考故障排除部分或查阅 MySQL 官方文档。希望本教程对您有所帮助!