文章目录
-
- [一、写在前面:为什么 MySQL 安装总让人"迷糊"?](#一、写在前面:为什么 MySQL 安装总让人“迷糊”?)
- [二、MySQL 的本质:客户端 / 服务端架构](#二、MySQL 的本质:客户端 / 服务端架构)
- [三、mysql-server 是什么?(服务端)](#三、mysql-server 是什么?(服务端))
-
- [3.1 mysql-server 安装了什么?](#3.1 mysql-server 安装了什么?)
- [3.2 mysql-server 的作用一句话总结](#3.2 mysql-server 的作用一句话总结)
- [四、mysql 是什么?(客户端)](#四、mysql 是什么?(客户端))
-
- [4.1 mysql 客户端包含什么?](#4.1 mysql 客户端包含什么?)
- [4.2 mysql 客户端的典型使用场景](#4.2 mysql 客户端的典型使用场景)
- [五、yum install -y mysql-server mysql 到底做了什么?](#五、yum install -y mysql-server mysql 到底做了什么?)
-
- [5.1 命令拆解说明](#5.1 命令拆解说明)
- [5.2 安装结果说明](#5.2 安装结果说明)
- 六、三种常见安装方式对比
- [七、如何查看 mysql / mysql-server 是否已安装?](#七、如何查看 mysql / mysql-server 是否已安装?)
-
- [7.1 使用 rpm 查看安装情况(最准确)](#7.1 使用 rpm 查看安装情况(最准确))
- [7.2 通过命令判断是否存在](#7.2 通过命令判断是否存在)
- [7.3 查看 MySQL 服务状态](#7.3 查看 MySQL 服务状态)
- [7.4 查看进程与端口](#7.4 查看进程与端口)
- [7.5 终极验证:本机直连数据库](#7.5 终极验证:本机直连数据库)
- 八、几个非常常见的误区
-
- [❌ 误区 1:mysql 就是数据库](#❌ 误区 1:mysql 就是数据库)
- [❌ 误区 2:启动 mysql 服务](#❌ 误区 2:启动 mysql 服务)
- [❌ 误区 3:装了 MySQL 却连不上](#❌ 误区 3:装了 MySQL 却连不上)
- 九、实战建议(运维必看)
- 十、总结
本篇博客
适合人群 :Linux 初学者 / 后端开发 / 运维
关键词 :MySQL、mysql-server、mysqld、Linux、yum、数据库安装
环境:CentOS 7 / Rocky / Alma / RHEL(其他 Linux 发行版思路一致)
一、写在前面:为什么 MySQL 安装总让人"迷糊"?
在 Linux 下安装 MySQL 时,很多人都会执行过这条命令:
bash
yum install -y mysql-server mysql
但装完之后,问题也随之而来:
mysql和mysql-server到底有什么区别?- 明明能敲
mysql,为什么数据库却连不上? - MySQL 到底算不算装成功了?
本质原因只有一个:没搞清楚 MySQL 的客户端和服务端。
这篇文章就从最底层的概念开始,一次把这件事讲清楚。
二、MySQL 的本质:客户端 / 服务端架构
MySQL 是一个典型的 C/S 架构(Client / Server)数据库,和 Redis、PostgreSQL 完全一致。
-
服务端(Server)
- 负责数据存储
- 负责执行 SQL
- 对外提供 3306 端口服务
-
客户端(Client)
- 用来连接数据库
- 发送 SQL
- 接收查询结果
客户端和服务端可以在同一台机器 ,也可以在不同机器。
三、mysql-server 是什么?(服务端)
3.1 mysql-server 安装了什么?
安装 mysql-server 后,系统中会出现:
mysqld(MySQL 核心服务进程)- 数据目录:
/var/lib/mysql - 配置文件:
/etc/my.cnf - systemd 服务:
mysqld.service
3.2 mysql-server 的作用一句话总结
mysql-server = 真正的数据库本体
没有它:
- 就没有数据库进程
- 就没有 3306 端口
- 所有客户端都无法连接
四、mysql 是什么?(客户端)
4.1 mysql 客户端包含什么?
安装 mysql 包后,你会得到:
mysql命令(最常用)mysqldumpmysqladmin等工具
常见使用方式:
bash
mysql -uroot -p
4.2 mysql 客户端的典型使用场景
mysql 客户端可以单独安装使用,非常常见:
bash
mysql -h 10.0.0.10 -u app -p
📌 说明:
- 客户端本身 不存数据
- 客户端 不启动数据库服务
五、yum install -y mysql-server mysql 到底做了什么?
5.1 命令拆解说明
bash
yum install -y mysql-server mysql
| 参数 | 含义 |
|---|---|
| yum install | 使用 yum 安装软件 |
| -y | 自动确认 |
| mysql-server | 安装 MySQL 服务端 |
| mysql | 安装 MySQL 客户端 |
5.2 安装结果说明
👉 这是 最完整、最常见 的 MySQL 安装方式:
- 本机既是数据库服务器
- 又能直接本地管理数据库
- 非常适合学习、测试和中小项目
六、三种常见安装方式对比
| 安装方式 | 是否能存数据 | 是否能操作数据库 | 常见场景 |
|---|---|---|---|
| 只装 mysql | ❌ | ✅ | 应用服务器 |
| 只装 mysql-server | ✅ | ❌(不方便) | 极简环境 |
| 两者都装 | ✅ | ✅ | 大多数情况 |
七、如何查看 mysql / mysql-server 是否已安装?
这是排查 MySQL 问题时最关键的一步。
7.1 使用 rpm 查看安装情况(最准确)
bash
rpm -qa | grep -i mysql
示例输出:
text
mysql-server-5.7.44-1.el7.x86_64
mysql-5.7.44-1.el7.x86_64
mysql-libs-5.7.44-1.el7.x86_64
判断规则:
- 出现
mysql-server→ 服务端已安装 - 出现
mysql→ 客户端已安装
7.2 通过命令判断是否存在
客户端:
bash
which mysql
mysql --version
服务端:
bash
which mysqld
mysqld --version
7.3 查看 MySQL 服务状态
bash
systemctl status mysqld
常见情况:
active (running):正常运行inactive (dead):已安装但未启动not found:未安装 mysql-server
7.4 查看进程与端口
bash
ps -ef | grep mysqld
ss -lntp | grep 3306
7.5 终极验证:本机直连数据库
bash
mysql -uroot -p
能进入 mysql>,说明:
- 客户端正常
- 服务端正常
- 配置与权限正常
八、几个非常常见的误区
❌ 误区 1:mysql 就是数据库
实际上:
mysql 只是客户端,真正的数据库进程是 mysqld
❌ 误区 2:启动 mysql 服务
错误做法:
bash
systemctl start mysql
正确做法:
bash
systemctl start mysqld
❌ 误区 3:装了 MySQL 却连不上
常见原因包括:
- 只装了客户端
- 服务端没启动
- 端口 3306 未监听
- bind-address 配置错误
九、实战建议(运维必看)
在真实环境中,常见 MySQL 安装方式包括:
- yum 安装
- Docker 容器
- 手动二进制安装
强烈建议:一台机器只保留一种 MySQL 安装方式,否则极易出现:
- 端口冲突
- 客户端连错实例
- 排错难度指数级上升
十、总结
mysql-server 是 MySQL 服务端,mysql 是客户端
yum install -y mysql-server mysql👉 同时安装了数据库本体和操作工具