news 2026/4/29 10:03:29

Linux 超详细安装 MySQL+Redis 及基础实操指南(新手保姆级)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 超详细安装 MySQL+Redis 及基础实操指南(新手保姆级)

目录

  • 前言
    • 一、环境前置说明
    • 二、MySQL 安装、配置与基础操作
      • 2.1 CentOS 安装 MySQL8.0(CentOS用户使用)
      • 2.2 Ubuntu 安装 MySQL8.0
      • 2.3 MySQL 初始化配置(重点区分系统)
        • CentOS 初始化方式
        • Ubuntu 初始化方式
      • 2.4 开启远程连接(开发必备)
      • 2.5 MySQL 核心基础命令
        • 1、数据库操作
        • 2、数据表操作
        • 3、数据 CRUD 增删改查
      • 2.6 MySQL 服务启停命令(分系统)
        • CentOS 系统
        • Ubuntu 系统
      • 2.7 常见报错解决
    • 三、Redis 安装、配置与基础操作
      • 3.1 Linux 源码安装 Redis7.0
      • 3.2 Redis 核心配置修改
      • 3.3 Redis 连接命令
      • 3.4 五大常用数据类型实操
        • 1、String 字符串(最常用)
        • 2、Hash 哈希(存储对象)
        • 3、List 列表(有序可重复)
        • 4、Set 集合(无序不可重复)
        • 5、ZSet 有序集合(排行榜专用)
      • 3.5 Redis 启停运维命令
    • 四、MySQL + Redis 经典业务架构
    • 五、服务器部署避坑指南
    • 六、总结
  • 总结

前言

在后端开发中,MySQL + Redis 是最经典、使用率最高的数据库组合。MySQL 负责数据持久化存储,Redis 承担热点数据缓存,极大提升项目接口响应速度。很多新手在服务器部署环境时,经常遇到软件安装失败、无法远程连接、命令遗忘、配置出错等问题。今天这篇博客,手把手带大家在 Linux 服务器下完成 MySQL、Redis 的安装、配置、开机自启、基础命令操作,附带生产常用场景,开箱即用。

一、环境前置说明

  • 适用系统:CentOS 7/8、Ubuntu 20.04+
  • 软件版本:MySQL8.0(稳定生产版)、Redis7.0
  • 权限要求:服务器 root 或 sudo 管理员权限

二、MySQL 安装、配置与基础操作

MySQL是开源关系型数据库,支持事务、索引、外键,数据持久化落地,是后端项目核心存储组件。

2.1 CentOS 安装 MySQL8.0(CentOS用户使用)

依次执行以下命令,全程复制即可:

# 下载mysql官方源wgethttps://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm# 安装软件源rpm-ivhmysql80-community-release-el8-3.noarch.rpm# 安装mysql服务yuminstall-ymysql-community-server# 启动服务 & 设置开机自启systemctl start mysqld systemctlenablemysqld

2.2 Ubuntu 安装 MySQL8.0

# 更新软件源aptupdate# 安装mysqlaptinstall-ymysql-server# 启动并开机自启systemctl start mysql systemctlenablemysql

检查mysql状态:

  • 检查mysql服务状态
  • 检查mysql是否安装
  • 检查3306端口是否在监听
  • 检查是否有mysql进程在运行
  • 检查系统是否安装过mysql包
# 1. 检查 MySQL 服务状态systemctl status mysql# 2. 检查 MySQL 是否安装which mysql mysql--version# 3. 检查 3306 端口是否在监听ss-tlnp|grep3306# 或者netstat-tlnp2>/dev/null|grep3306# 4. 检查是否有 MySQL 进程在运行ps aux|grep mysql|grep-v grep# 5. 检查系统是否安装过 MySQL 包(Ubuntu/Debian)dpkg-l|grep-i mysql

2.3 MySQL 初始化配置(重点区分系统)

关键区别

  • CentOS MySQL:安装后自动生成临时密码,存放在日志文件

  • Ubuntu MySQL:默认无密码、无日志密码,必须本地免密登录改密码

CentOS 初始化方式
# 查看临时密码grep'temporary password'/var/log/mysqld.log# 登录数据库mysql-uroot-p
Ubuntu 初始化方式

Ubuntu 安装 MySQL 后无法直接mysql -uroot -p登录,必须先免密登录修改密码:

# Ubuntu 专属:免密登录mysqlsudomysql

进入数据库后执行以下 SQL 修改登录密码(自定义密码):

# Ubuntu专用改密码语句ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'123456';FLUSHPRIVILEGES;exit;

退出后即可使用标准命令登录:

退出后必须执行 Ubuntu socket 永久修复全套命令(含重启MySQL),修复完毕后可直接使用标准登录命令:

mysql-uroot-p
# 修改root密码ALTERUSER'root'@'localhost'IDENTIFIEDBY'自定义密码';# 刷新权限FLUSHPRIVILEGES;

2.4 开启远程连接(开发必备)

默认 root 用户仅支持本地登录,需要配置远程访问:

# 创建远程用户CREATEUSER'root'@'%'IDENTIFIEDBY'你的密码';# 赋予全部权限GRANTALLPRIVILEGESON*.*TO'root'@'%';# 刷新权限FLUSHPRIVILEGES;

2.5 MySQL 核心基础命令

1、数据库操作
-- 查看所有数据库SHOWDATABASES;-- 创建数据库,指定utf8mb4完整编码CREATEDATABASEtest_dbCHARACTERSETutf8mb4;-- 切换数据库USEtest_db;-- 删除数据库DROPDATABASEtest_db;
2、数据表操作
-- 创建用户表CREATETABLEuser(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(20)NOTNULLCOMMENT'用户名',ageINTCOMMENT'年龄',create_timeDATETIMEDEFAULTNOW()COMMENT'创建时间');-- 查看所有表SHOWTABLES;-- 查看表结构DESCuser;-- 删除数据表DROPTABLEuser;
3、数据 CRUD 增删改查
-- 新增数据INSERTINTOuser(name,age)VALUES('张三',20),('李四',22);-- 查询全部数据SELECT*FROMuser;-- 条件查询SELECTname,ageFROMuserWHEREage>20;-- 修改数据UPDATEuserSETage=21WHEREname='张三';-- 删除数据DELETEFROMuserWHEREname='李四';

2.6 MySQL 服务启停命令(分系统)

CentOS 系统
systemctl start mysqld# 启动systemctl stop mysqld# 停止systemctl restart mysqld# 重启systemctl status mysqld# 查看运行状态
Ubuntu 系统
systemctl start mysql# 启动systemctl stop mysql# 停止systemctl restart mysql# 重启systemctl status mysql# 查看运行状态systemctlenablemysql# 开机自启

2.7 常见报错解决

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

因为 Anaconda 自带的 MySQL 客户端(/root/anaconda3/bin/mysql)默认查找 socket 文件在 /tmp/mysql.sock,但系统安装的 MySQL Server 的 socket 文件实际在 /var/run/mysqld/mysqld.sock。

# 1. 建立socket软链接,兼容标准登录命令ln-s/run/mysqld/mysqld.sock /tmp/mysql.sock# 2. 授权目录权限,防止链接失效chmod755/run/mysqld/# 3. 【最关键】重启MySQL服务使配置生效(必不可少)systemctl restart mysql# 修复完成!直接使用标准命令登录mysql-uroot-p

三、Redis 安装、配置与基础操作

Redis 是高性能内存型 NoSQL 数据库,读写速度极高,常用于接口缓存、分布式锁、限流、会话存储、排行榜等场景。

3.1 Linux 源码安装 Redis7.0

检查redis的状态:

  • 检查redis的服务状态
  • 检查是否安装了redis
  • 检查6379端口
  • 检查redis进程
  • 检查系统包管理器
# 1. 检查 Redis 服务状态systemctl status redis-server2>/dev/null||systemctl status redis2>/dev/null||echo"Redis 服务未找到"# 2. 检查是否安装了 Rediswhich redis-server redis-server--version2>/dev/null||redis-cli--version2>/dev/null# 3. 检查 6379 端口ss-tlnp|grep6379# 4. 检查 Redis 进程ps aux|grep redis-server|grep-v grep# 5. 检查系统包管理器dpkg-l|grep-i redis

Redis 安装:

# Ubuntu安装依赖(默认使用此条)aptinstall-ygccwget# CentOS安装依赖# yum install -y gcc wget# 下载源码包wgethttps://download.redis.io/releases/redis-7.0.10.tar.gz# 解压tar-zxvfredis-7.0.10.tar.gzcdredis-7.0.10# 编译 & 安装makemakeinstallPREFIX=/usr/local/redis# 拷贝配置文件cpredis.conf /usr/local/redis/bin/cd/usr/local/redis/bin

3.2 Redis 核心配置修改

编辑配置文件,适配开发环境,支持远程连接、后台启动、密码保护:

viredis.conf

修改以下配置:

# 1. 注释本地绑定,允许所有IP连接 # bind 127.0.0.1 # 2. 关闭保护模式 protected-mode no # 3. 设置连接密码 requirepass 123456 # 4. 后台进程启动 daemonize yes

保存退出,启动 Redis:

./redis-server redis.conf

3.3 Redis 连接命令

# 本地无密码连接./redis-cli# 带密码连接./redis-cli-a123456# 远程服务器连接./redis-cli-h服务器IP-p6379-a密码

3.4 五大常用数据类型实操

1、String 字符串(最常用)
SET username admin # 设置键值 GET username # 获取值 SETEX token 3600 123456 # 设置过期时间(秒) DEL username # 删除key
2、Hash 哈希(存储对象)
HSET user:1 name 张三 age 20 HGET user:1 name HGETALL user:1
3、List 列表(有序可重复)
LPUSH list a b c RPUSH list d LRANGE list 0 -1
4、Set 集合(无序不可重复)
SADD tag java python SMEMBERS tag
5、ZSet 有序集合(排行榜专用)
ZADD rank 99 小明 ZADD rank 95 小红 ZRANGE rank 0 -1

3.5 Redis 启停运维命令

# 优雅关闭redis./redis-cli-a123456shutdown# 强制结束进程ps-ef|greprediskill-9进程ID# 重启redis./redis-server redis.conf

四、MySQL + Redis 经典业务架构

在实际项目中,两者不会单独使用,而是缓存+持久化搭配使用,解决数据库查询压力大、接口卡顿问题。

执行流程:

  1. 用户发起查询请求

  2. 程序优先查询 Redis 缓存数据

  3. 缓存命中:直接返回数据,无需查询数据库

  4. 缓存未命中:查询 MySQL 持久化数据

  5. 将查询到的数据写入 Redis,设置过期时间

  6. 返回数据给用户

简单伪代码演示:

defgetUserInfo(userId):# 1. 查询缓存user=redis.get(f"user:{userId}")ifuser:returnuser# 2. 查询数据库user=mysql.query("select * from user where id = ?",userId)# 3. 写入缓存,过期1小时redis.setex(f"user:{userId}",3600,user)returnuser

五、服务器部署避坑指南

  • MySQL:禁止生产环境 root 用户公网裸奔,务必设置强密码,按需开放远程权限

  • Redis:绝对不能无密码暴露公网,极易被挖矿脚本入侵,必须配置密码+关闭保护模式

  • 服务器防火墙需要放行3306(MySQL)6379(Redis)端口,否则外部无法连接

  • 缓存必须设置过期时间,避免 Redis 数据常驻内存、数据与数据库不一致

六、总结

1、MySQL:关系型数据库,主打数据持久化、事务安全,是项目数据底座;

2、Redis:内存数据库,主打高性能读写,用于缓存、限流、分布式锁等场景;

3、二者组合是后端开发标准架构,既能保证数据安全持久化,又能大幅提升项目性能;

4、本文所有命令可直接复制部署,适合服务器环境搭建、新手学习、项目上线部署。


总结

太喜欢烟花啦,虽然转瞬即逝!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 10:01:58

抖音无水印下载神器:3分钟掌握批量下载与资源管理全技巧

抖音无水印下载神器:3分钟掌握批量下载与资源管理全技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback sup…

作者头像 李华
网站建设 2026/4/29 9:51:58

WeChatFerry微信机器人终极指南:3步打造智能AI助手

WeChatFerry微信机器人终极指南:3步打造智能AI助手 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/GitHub_Trending/…

作者头像 李华
网站建设 2026/4/29 9:45:35

FLUX.1-Krea-Extracted-LoRA效果展示:羊毛地毯纤维+环境光散射表现

FLUX.1-Krea-Extracted-LoRA效果展示:羊毛地毯纤维环境光散射表现 1. 真实感图像生成新标杆 FLUX.1-Krea-Extracted-LoRA 真实感图像生成模型v1.0带来了AI图像生成领域的重大突破。这个从FLUX.1-Krea-dev基础模型中提取的LoRA风格权重,专为FLUX.1-dev设…

作者头像 李华
网站建设 2026/4/29 9:43:23

淘宝淘金币自动化脚本:每天节省25分钟的全能任务助手终极指南

淘宝淘金币自动化脚本:每天节省25分钟的全能任务助手终极指南 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi …

作者头像 李华