Linux (CentOS/Ubuntu) 命令行安装MySQL指南

雨后青山
雨后青山
发布时间:2026-09-20| 4人浏览过
原创

在Linux服务器中,无论是CentOS还是Ubuntu,安装MySQL的核心路径均包含三个环节:配置官方或系统依赖源、通过包管理器拉取并安装程序文件、初始化系统服务并执行安全基线配置。本文将完整介绍两套系统下从纯净环境到安全可用的命令行实操步骤,并拆解权限与网络连通的关键排错方法。

一、安装前准备与核心流程

在开始安装前,需要明确你的系统发行版及其包管理工具:Ubuntu使用 apt,而CentOS(包括兼容的RHEL体系)主要使用 yum 或 dnf。如果系统此前安装过旧版本的MySQL或MariaDB,必须先完成清理,避免出现动态库冲突或端口占用的问题。

MySQL在Linux系统下的标准安装流程
图 1:Linux 平台 MySQL 安装与初始化核心工作流

二、Ubuntu 系统安装步骤 (APT)

Ubuntu 官方软件仓库内置了 MySQL Server 软件包,版本通常保持稳定且维护充分,可直接使用 apt 工具拉取安装。

1. 更新索引并安装服务

# 更新本地软件包列表
sudo apt update

# 安装 MySQL 服务端
sudo apt install -y mysql-server

2. 启动与管理服务

安装完成后,Ubuntu 默认会自动启动 MySQL 实例并加入开机自启。你可以通过以下命令确认运行状态:

# 启动服务(若未启动)
sudo systemctl start mysql

# 设置开机自启
sudo systemctl enable mysql

# 查看运行状态
sudo systemctl status mysql

如果输出中包含绿色的 active (running) 字样,说明数据库服务进程已在后台成功监听。

三、CentOS 系统安装步骤 (YUM / DNF)

CentOS 默认源中通常收录 MariaDB 作为替代,因此安装官方 MySQL 时,通常需要配置 MySQL 官方 YUM 软件源,或使用内置的 AppStream 模块流。

1. 清理冲突包并配置官方源

# 检查是否存在 MariaDB 依赖冲突并清理
sudo rpm -qa | grep -i mariadb | xargs -r sudo rpm -e --nodeps

# 下载并安装官方 MySQL Yum Repository RPM 包 (以 EL8/EL9 架构通用源为例)
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm

2. 安装 MySQL Community Server

若使用的是 CentOS 8 / Stream 或兼容系统,可能需要先禁用默认模块流,避免包管理解析歧义:

# 禁用系统自带的 mysql 模块流
sudo dnf -y module disable mysql

# 安装 MySQL Community 核心服务
sudo dnf install -y mysql-community-server

3. 启动服务并获取临时密码

CentOS 下安装完成后服务不会自动拉起,需要手动启动并设置自启:

# 启动服务
sudo systemctl start mysqld

# 设置自启
sudo systemctl enable mysqld

与 Ubuntu 不同,CentOS 首次启动 mysqld 时会由系统自动为 root@localhost 生成一个随机临时密码,保存在系统日志中。运行以下命令过滤提取该密码:

# 提取临时初始化密码
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: pW#k9L!z_a1q
末尾的字符串 pW#k9L!z_a1q 即为下一步登录所需的一次性密码。

四、安全初始化配置与权限设置

无论在哪个系统下,新安装的 MySQL 实例都建议运行官方自带的安全强化向导 mysql_secure_installation。该向导会执行以下四项核心安全清理:验证密码强度、移除匿名用户、禁止 root 远程直接登录、删除默认的 test 数据库。

mysql_secure_installation 交互决策流程
图 2:安全向导配置项与建议选项
# 执行向导
sudo mysql_secure_installation

在向导提示过程中,按照以下逻辑进行选择:

  • VALIDATE PASSWORD COMPONENT:如果对系统密码合规性有严格限制,可键入 y 并选择强度级别;如果是开发测试环境,键入 n 可避免因密码复杂度不足频繁报错。
  • New password:输入自定义的高强度 root 密码(CentOS 用户需在此前先输入上面找到的临时密码)。
  • Remove anonymous users?:键入 y,禁止匿名连接。
  • Disallow root login remotely?:键入 y,强制 root 仅可在本地连接。
  • Remove test database and access to it?:键入 y,清理测试数据库。
  • Reload privilege tables now?:键入 y,让上述改动即时生效。

五、远程连接架构与网络排错

完成安全初始化后,root 账户被限制在本地访问。若需要开发工作站或外部业务服务连接该数据库,标准做法是在数据库内创建专属远程运维账号,并同步检查系统监听地址与防火墙设置。

客户端与MySQL服务连接架构与排错点
图 3:远程客户端接入 MySQL 链路诊断模型

1. 创建远程业务用户

首先进入 MySQL 命令行客户端:

# 登录本地数据库
sudo mysql -u root -p

在 MySQL 控制台中,执行如下 SQL 语句创建一个专供指定网段或全网段访问的用户:

-- 创建一个允许任意主机 (%) 连接的用户 app_user,密码为 MyPassword@2026
CREATE USER 'app_user'@'%' IDENTIFIED BY 'MyPassword@2026';

-- 授予该用户在业务数据库上的读写权限(若没有库可先赋予全部库)
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%' WITH GRANT OPTION;

-- 刷新授权使改动立刻生效
FLUSH PRIVILEGES;

-- 退出终端
EXIT;

2. 修改监听绑定地址 (Bind Address)

在部分系统(特别是 Ubuntu)的默认配置中,MySQL 默认只监听本地回环网络 127.0.0.1,外部数据包会直接被系统内核拒绝。

检查配置文件并修改:

  • Ubuntu 路径:/etc/mysql/mysql.conf.d/mysqld.cnf
  • CentOS 路径:/etc/my.cnf 或 /etc/my.cnf.d/mysql-server.cnf

找到 bind-address 这一行,将其更改为允许全部网络接入:

# 允许所有网络接口监听
bind-address = 0.0.0.0

修改完成后,重启 MySQL 服务使配置生效:

# Ubuntu
sudo systemctl restart mysql

# CentOS
sudo systemctl restart mysqld

3. 检查系统防火墙规则

如果云服务器或物理宿主机开启了系统防火墙,需要显式放行 3306 端口:

# Ubuntu (UFW)
sudo ufw allow 3306/tcp
sudo ufw status

# CentOS (Firewalld)
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
安全提示:如果在阿里云、腾讯云、AWS 等云平台运行实例,除系统内防火墙外,还需在云控制台的安全组 (Security Group)入方向规则中添加放行 TCP 3306 端口,否则外部流量仍会被云基础设施层阻断。

六、两类系统的核心差异与速查总结

为便于读者快速根据环境确认差异,以下汇总了两个主流发行版在包管理、默认配置文件、服务名称以及初始密码策略上的关键对照:

配置项 / 行为 Ubuntu (基于 Debian) CentOS (基于 RHEL)
核心包管理器 apt dnf / yum
Systemd 服务名称 mysql (亦可使用 mysql.service) mysqld (mysqld.service)
安装后初始状态 自动启动并加入开机启动项 未启动,需显式执行 systemctl start
Root 初始密码机制 基于 auth_socket 插件认证,root免密本地提权 自动生成临时明文密码,写入 /var/log/mysqld.log
主配置文件位置 /etc/mysql/mysql.conf.d/mysqld.cnf /etc/my.cnf
默认数据目录 /var/lib/mysql /var/lib/mysql
Linux下MySQL日常运维速查图
图 4:MySQL 核心运维管理命令与系统路径速查

只要按照上述顺序依次完成源配置、服务拉取、安全向导以及必要的网络解绑,即可在两种主流的 Linux 发行版上得到一个兼具安全性与可用性的 MySQL 服务环境。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。