由于 MySQL 官方提供了 Yum 和 APT 软件源,我们推荐使用官方源进行安装,这样可以确保获取到最新、最稳定且经过测试的版本。

第一步:准备工作(所有系统通用)
在安装之前,最好先更新一下系统的软件包列表。
对于 CentOS/RHEL 系统:
# 更新所有已安装的包 sudo yum update -y
对于 Ubuntu/Debian 系统:
# 更新软件包列表和已安装的包 sudo apt update && sudo apt upgrade -y
第二步:在 CentOS/RHEL 7/8 系统上安装 MySQL
添加 MySQL 官方 Yum 软件源
MySQL 提供了一个专门的配置工具 mysql-community-release 来简化源的添加过程。
# 对于 CentOS 7 sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm -y # 对于 CentOS 8 / RHEL 8 sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-7.noarch.rpm -y
验证源是否添加成功:
# 检查是否有 enabled=1 的源 sudo yum repolist enabled | grep ".*" | grep ".*.*"
你应该能看到类似 mysql-8.0-community/x86_64 和 mysql-connectors-community/x86_64 的源,enabled 列为 1。

安装 MySQL 服务器
使用 Yum 或 DNF 来安装 MySQL 服务器包。
# 对于 CentOS 7 (使用 yum) sudo yum install mysql-community-server -y # 对于 CentOS 8 / RHEL 8 (使用 dnf) sudo dnf install mysql-community-server -y
启动 MySQL 服务并设置开机自启
# 启动 MySQL 服务 sudo systemctl start mysqld # 设置 MySQL 开机自启 sudo systemctl enable mysqld
检查 MySQL 服务状态
sudo systemctl status mysqld
如果看到绿色的 active (running) 字样,说明服务已成功启动。
安全配置向导
新安装的 MySQL 有一个安全配置脚本,它会:
- 设置 root 用户的密码
- 移除匿名用户
- 禁止 root 用户远程登录
- 移除测试数据库
- 默认情况下禁止 root 用户远程登录
- 重新加载权限表
运行脚本:

sudo mysql_secure_installation
脚本会以交互方式引导你完成配置,对于生产环境,推荐对每个问题都回答 Y (是),对于首次安装,它会自动为你生成一个临时的 root 密码。
如何查找临时 root 密码? 脚本运行前,MySQL 会在错误日志中生成一个临时密码,你可以通过以下命令查看:
sudo grep 'temporary password' /var/log/mysqld.log
复制这个密码,在 mysql_secure_installation 提示输入时使用。
第三步:在 Ubuntu/Debian 系统上安装 MySQL
添加 MySQL 官方 APT 软件源
你需要下载并添加 MySQL 的 APT 仓库配置文件。
# 下载 MySQL APT 仓库配置包 sudo apt-get install -y libmysqlclient21 wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
安装这个 .deb 包,它会弹出一个配置界面,请选择 "Ok" 并确认要安装的 MySQL 版本(默认为最新的 8.0)。
sudo dpkg -i mysql-apt-config_*
如果出现依赖问题,运行 sudo apt-get -f install 来解决。
更新你的 APT 包缓存,以包含新的 MySQL 仓库:
sudo apt update
安装 MySQL 服务器
sudo apt install mysql-server -y
启动 MySQL 服务并设置开机自启
# 启动 MySQL 服务 sudo systemctl start mysql # 设置 MySQL 开机自启 sudo systemctl enable mysql
检查 MySQL 服务状态
sudo systemctl status mysql
同样,确认看到 active (running)。
安全配置向导
与 CentOS 类似,Ubuntu/Debian 的安装也包含安全配置脚本。
sudo mysql_secure_installation
这个过程与 CentOS 上的完全相同,包括设置 root 密码、移除匿名用户等,它会自动生成一个临时密码。
如何查找临时 root 密码?
在 Ubuntu/Debian 上,临时密码通常存储在 /etc/mysql/debian.cnf 文件中。
sudo cat /etc/mysql/debian.cnf
文件中的 password 字段就是临时密码,你可以用它来登录。
第四步:验证安装和后续操作
登录 MySQL
使用你刚刚设置的 root 密码登录。
# 方法一 (推荐,root 用户有密码) mysql -u root -p # 方法二 (如果使用了 debian-sys-maint 用户,可以从 /etc/mysql/debian.cnf 获取密码) mysql -u debian-sys-maint -p
输入密码后,你应该会看到 mysql> 提示符。
检查 MySQL 版本
登录后,可以输入以下命令查看版本:
SELECT VERSION();
或者直接在 shell 中执行:
mysql -V
创建新用户和数据库(示例)
为了安全,不建议一直使用 root 用户,创建一个专用的数据库和用户。
-- 创建一个名为 'mydb' 的数据库 CREATE DATABASE mydb; -- 创建一个用户 'myuser'@'localhost',密码为 'mypassword_strong' CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword_strong'; -- 授予 'myuser' 用户对 'mydb' 数据库的所有权限 GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; -- 刷新权限,使更改立即生效 FLUSH PRIVILEGES; -- 退出 MySQL EXIT;
你可以使用新用户连接到你的数据库了:
mysql -u myuser -p mydb
常见问题排查
-
端口被占用或服务无法启动 检查 MySQL 是否已经在运行,或者是否有其他程序占用了 3306 端口。
# 检查端口占用 sudo ss -tulnp | grep 3306 # 检查 MySQL 进程 sudo ps aux | grep mysqld # 查看详细错误日志 sudo tail -f /var/log/mysql/error.log # Ubuntu/Debian sudo tail -f /var/log/mysqld.log # CentOS/RHEL
-
忘记 root 密码 这是一个比较复杂的过程,通常需要停止 MySQL 服务,然后以安全模式启动,绕过权限表来修改密码,具体步骤请根据你的系统版本查阅 MySQL 官方文档。
-
防火墙问题 如果你的服务器开启了防火墙(如
firewalld或ufw),需要确保 3306 端口对允许的 IP 开放。# CentOS/RHEL (firewalld) sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload # Ubuntu/Debian (ufw) sudo ufw allow 3306/tcp
至此,你已经成功在 Linux 系统上安装并配置好了 MySQL 数据库服务器。
