MySQL 新手避坑指南:安装、区分、检查一步到位

文章目录

    • [一、写在前面:为什么 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

但装完之后,问题也随之而来:

  • mysqlmysql-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 命令(最常用)
  • mysqldump
  • mysqladmin 等工具

常见使用方式:

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

👉 同时安装了数据库本体和操作工具

相关推荐
心本无晴.7 小时前
拣学--基于vue3和django框架实现的辅助考研系统
vue.js·python·mysql·考研·django·dify
JIngJaneIL7 小时前
基于java+ vue畅游游戏销售管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·游戏
詹姆斯爱研究Java7 小时前
基于Django的租房网站的设计与实现
数据库·python·django
deng-c-f7 小时前
Linux C/C++ 学习日记(50):连接池
数据库·学习·连接池
运维行者_7 小时前
APM 性能监控是什么?从应用监控与网站监控了解基础概念
网络·数据库·云原生·容器·kubernetes·智能路由器·运维开发
全栈小57 小时前
【数据库】当InfluxDB遇到天花板:金仓数据库如何重构时序性能极限?
数据库·重构
颜颜yan_7 小时前
时序数据库性能较量:金仓数据库如何在高负载场景中领跑InfluxDB
数据库·时序数据库
北友舰长7 小时前
基于Springboot+thymeleaf快递管理系统的设计与实现【Java毕业设计·安装调试·代码讲解】
java·spring boot·mysql·校园管理·快递·快递系统
yfs10247 小时前
PostgreSQL 16 + pgvector 完整安装和内网访问指南(Ubuntu 20.04)
数据库·ubuntu·postgresql