Linux 超详细安装 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官方源
wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
# 安装软件源
rpm -ivh mysql80-community-release-el8-3.noarch.rpm
# 安装mysql服务
yum install -y mysql-community-server
# 启动服务 & 设置开机自启
systemctl start mysqld
systemctl enable mysqld
2.2 Ubuntu 安装 MySQL8.0
# 更新软件源
apt update
# 安装mysql
apt install -y mysql-server
# 启动并开机自启
systemctl start mysql
systemctl enable mysql
检查mysql状态:
- 检查mysql服务状态
- 检查mysql是否安装
- 检查3306端口是否在监听
- 检查是否有mysql进程在运行
- 检查系统是否安装过mysql包
# 1. 检查 MySQL 服务状态
systemctl status mysql
# 2. 检查 MySQL 是否安装
which mysql
mysql --version
# 3. 检查 3306 端口是否在监听
ss -tlnp | grep 3306
# 或者
netstat -tlnp 2>/dev/null | grep 3306
# 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 专属:免密登录mysql
sudo mysql
进入数据库后执行以下 SQL 修改登录密码(自定义密码):
# Ubuntu专用改密码语句
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
exit;
退出后即可使用标准命令登录:
退出后必须执行 Ubuntu socket 永久修复全套命令(含重启MySQL),修复完毕后可直接使用标准登录命令:
mysql -uroot -p
# 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义密码';
# 刷新权限
FLUSH PRIVILEGES;
2.4 开启远程连接(开发必备)
默认 root 用户仅支持本地登录,需要配置远程访问:
# 创建远程用户
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
# 赋予全部权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
# 刷新权限
FLUSH PRIVILEGES;
2.5 MySQL 核心基础命令
1、数据库操作
-- 查看所有数据库
SHOW DATABASES;
-- 创建数据库,指定utf8mb4完整编码
CREATE DATABASE test_db CHARACTER SET utf8mb4;
-- 切换数据库
USE test_db;
-- 删除数据库
DROP DATABASE test_db;
2、数据表操作
-- 创建用户表
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COMMENT '用户名',
age INT COMMENT '年龄',
create_time DATETIME DEFAULT NOW() COMMENT '创建时间'
);
-- 查看所有表
SHOW TABLES;
-- 查看表结构
DESC user;
-- 删除数据表
DROP TABLE user;
3、数据 CRUD 增删改查
-- 新增数据
INSERT INTO user(name, age) VALUES('张三', 20), ('李四', 22);
-- 查询全部数据
SELECT * FROM user;
-- 条件查询
SELECT name,age FROM user WHERE age > 20;
-- 修改数据
UPDATE user SET age=21 WHERE name='张三';
-- 删除数据
DELETE FROM user WHERE name='李四';
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 # 查看运行状态
systemctl enable mysql # 开机自启
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. 授权目录权限,防止链接失效
chmod 755 /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-server 2>/dev/null || systemctl status redis 2>/dev/null || echo "Redis 服务未找到"
# 2. 检查是否安装了 Redis
which redis-server
redis-server --version 2>/dev/null || redis-cli --version 2>/dev/null
# 3. 检查 6379 端口
ss -tlnp | grep 6379
# 4. 检查 Redis 进程
ps aux | grep redis-server | grep -v grep
# 5. 检查系统包管理器
dpkg -l | grep -i redis
Redis 安装:
# Ubuntu安装依赖(默认使用此条)
apt install -y gcc wget
# CentOS安装依赖
# yum install -y gcc wget
# 下载源码包
wget https://download.redis.io/releases/redis-7.0.10.tar.gz
# 解压
tar -zxvf redis-7.0.10.tar.gz
cd redis-7.0.10
# 编译 & 安装
make
make install PREFIX=/usr/local/redis
# 拷贝配置文件
cp redis.conf /usr/local/redis/bin/
cd /usr/local/redis/bin
3.2 Redis 核心配置修改
编辑配置文件,适配开发环境,支持远程连接、后台启动、密码保护:
vi redis.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 -a 123456
# 远程服务器连接
./redis-cli -h 服务器IP -p 6379 -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 -a 123456 shutdown
# 强制结束进程
ps -ef | grep redis
kill -9 进程ID
# 重启redis
./redis-server redis.conf
四、MySQL + Redis 经典业务架构
在实际项目中,两者不会单独使用,而是缓存+持久化搭配使用,解决数据库查询压力大、接口卡顿问题。
执行流程:
-
用户发起查询请求
-
程序优先查询 Redis 缓存数据
-
缓存命中:直接返回数据,无需查询数据库
-
缓存未命中:查询 MySQL 持久化数据
-
将查询到的数据写入 Redis,设置过期时间
-
返回数据给用户
简单伪代码演示:
def getUserInfo(userId):
# 1. 查询缓存
user = redis.get(f"user:{userId}")
if user:
return user
# 2. 查询数据库
user = mysql.query("select * from user where id = ?",userId)
# 3. 写入缓存,过期1小时
redis.setex(f"user:{userId}",3600,user)
return user
五、服务器部署避坑指南
-
MySQL:禁止生产环境 root 用户公网裸奔,务必设置强密码,按需开放远程权限
-
Redis:绝对不能无密码暴露公网,极易被挖矿脚本入侵,必须配置密码+关闭保护模式
-
服务器防火墙需要放行 3306(MySQL)、6379(Redis) 端口,否则外部无法连接
-
缓存必须设置过期时间,避免 Redis 数据常驻内存、数据与数据库不一致
六、总结
1、MySQL:关系型数据库,主打数据持久化、事务安全,是项目数据底座;
2、Redis:内存数据库,主打高性能读写,用于缓存、限流、分布式锁等场景;
3、二者组合是后端开发标准架构,既能保证数据安全持久化,又能大幅提升项目性能;
4、本文所有命令可直接复制部署,适合服务器环境搭建、新手学习、项目上线部署。
总结
太喜欢烟花啦,虽然转瞬即逝!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)