MySQL(关系型数据库)、MongoDB(文档型 NoSQL)、Redis(内存数据库)是最常用的三大工具。本文基于 Ubuntu 操作系统,梳理三者的核心知识点、安装配置、基础操作及运维要点,帮助开发者快速上手并规避常见问题。
目录
[一、Ubuntu 环境准备](#一、Ubuntu 环境准备)
[1. 系统更新](#1. 系统更新)
[2. 权限说明](#2. 权限说明)
[二、MySQL 核心知识点与实战](#二、MySQL 核心知识点与实战)
[1. 安装与初始化](#1. 安装与初始化)
[(1)安装 MySQL 服务](#(1)安装 MySQL 服务)
[(3)登录 MySQL](#(3)登录 MySQL)
[2. 核心配置](#2. 核心配置)
[3. 基础操作(SQL 命令)](#3. 基础操作(SQL 命令))
[4. 服务管理](#4. 服务管理)
[三、mongodb 核心知识点与实战](#三、mongodb 核心知识点与实战)
[1. 安装与初始化](#1. 安装与初始化)
[(1)添加官方源(避免 apt 源版本过旧)](#(1)添加官方源(避免 apt 源版本过旧))
[2. 核心配置](#2. 核心配置)
[3. 用户认证与权限](#3. 用户认证与权限)
[4. 基础操作(mongosh 命令)](#4. 基础操作(mongosh 命令))
[四、redis 核心知识点与实战](#四、redis 核心知识点与实战)
[1. 安装与初始化](#1. 安装与初始化)
[(1)安装 redis](#(1)安装 redis)
[2. 核心配置](#2. 核心配置)
[3. 基础操作(redis-cli 命令)](#3. 基础操作(redis-cli 命令))
[4. 服务管理](#4. 服务管理)
一、Ubuntu 环境准备
1. 系统更新
操作前先更新软件包索引,确保依赖最新:
2. 权限说明
本文所有命令默认以 sudo
权限执行(普通用户需添加 sudo
),避免权限不足导致操作失败。
二、MySQL 核心知识点与实战
MySQL 是开源关系型数据库,适用于结构化数据存储(如用户信息、订单数据),遵循 ACID 特性,支持 SQL 语法。
1. 安装与初始化
(1)安装 MySQL 服务
sudo apt install mysql-server -y
(2)安全初始化
执行官方安全脚本,设置 root 密码、删除匿名用户、禁用远程 root 登录:
sudo mysql_secure_installation
按提示操作:
选择密码验证策略(推荐 0
低策略,便于测试;生产环境选 2
高策略);
设置 root 密码(记牢,后续登录用);
依次输入 Y
确认删除匿名用户、禁用远程 root、删除测试库、刷新权限。
(3)登录 MySQL
# 本地登录(root 用户)
sudo mysql -u root -p
# 输入步骤 2 设置的密码,成功进入 MySQL 命令行(提示符:mysql>)
2. 核心配置
允许远程连接(可选)
默认 MySQL 仅监听本地 127.0.0.1
,如需远程访问:
,1,编辑配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
2,注释或修改 bind-address
:
# bind-address = 127.0.0.1 # 注释掉,允许所有 IP 访问
bind-address = 0.0.0.0 # 或指定允许的远程 IP
3,重启服务:
sudo systemctl restart mysql
4,授权远程用户(MySQL 命令行执行):
# 授权 root 用户从任意 IP 登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
3. 基础操作(SQL 命令)
操作目标 | 命令示例 |
---|---|
创建数据库 | create database test_db default charset utf8mb4; |
使用数据库 | use test_db; |
创建表 | create table user (id int primary key auto_increment, name varchar(20)); |
插入数据 | insert into user (name) values ('张三'), ('李四'); |
查询数据 | select * from user; |
退出 mysql | exit; 或 \q |
4. 服务管理
# 查看状态
sudo systemctl status mysql
# 启动/停止/重启
sudo systemctl start/stop/restart mysql
# 设置开机自启
sudo systemctl enable mysql
三、mongodb 核心知识点与实战
mongodb 是文档型 nosql 数据库,以 bson(类 json)格式存储数据,适用于非结构化 / 半结构化数据(如日志、用户画像),支持灵活的查询与分布式扩展。
1. 安装与初始化
(1)添加官方源(避免 apt 源版本过旧)
# 导入 GPG 密钥
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
# 添加软件源
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
# 更新并安装
sudo apt update && sudo apt install mongodb-org -y
(2)启动服务并设置自启
sudo systemctl start mongod
sudo systemctl enable mongod
# 验证状态(出现 active (running) 即正常)
sudo systemctl status mongod
2. 核心配置
mongodb 配置文件,关键配置项:
net:
bindIp: 127.0.0.1 # 监听 IP,远程访问改 0.0.0.0
port: 27017 # 默认端口
security:
authorization: enabled # 启用用户认证(默认关闭)
修改后需重启服务:sudo systemctl restart mongod
3. 用户认证与权限
(1)创建管理员用户
-
未启用认证时登录:
mongosh # 直接进入(默认无密码)
-
切换到
admin
数据库,创建超级管理员:use admin; db.createUser({ user: "admin", // 用户名 pwd: "你的强密码", // 密码 roles: [{ role: "root", db: "admin" }] // 超级权限 });
-
启用认证(修改
mongod.conf
中authorization: enabled
),重启服务。
(2)登录与创建普通用户
# 用管理员账号登录
mongosh -u admin -p 你的密码 --authenticationDatabase admin
# 切换到目标数据库(如 test_db),创建普通用户(读写权限)
use test_db;
db.createUser({
user: "test_user",
pwd: "test_pass",
roles: [{ role: "readWrite", db: "test_db" }]
});
4. 基础操作(mongosh 命令)
操作目标 | 命令示例 |
---|---|
查看所有数据库 | show dbs; |
创建 / 切换数据库 | use test_db; (插入数据后自动创建) |
创建集合(表) | db.createCollection("user"); |
插入文档(数据) | db.user.insertOne({ name: "张三", age: 25 }); |
查询文档 | db.user.find(); (查询所有)/ db.user.find({ age: 25 }); (条件查询) |
删除文档 | db.user.deleteOne({ name: "张三" }); |
退出 mongosh | exit |
四、redis 核心知识点与实战
redis 是高性能内存数据库,支持键值对存储,常用于缓存、会话存储、消息队列,数据读写速度达 10 万次 / 秒级别。
1. 安装与初始化
(1)安装 redis
sudo apt install redis-server -y
(2)验证安装
# 启动 redis 客户端
redis-cli
# 执行 ping 命令,返回 PONG 即正常
127.0.0.1:6379> ping
PONG
2. 核心配置
允许远程连接(可选)
默认 redis 仅监听 127.0.0.1
,远程访问需修改:
-
编辑配置文件:
sudo nano /etc/redis/redis.conf
-
修改关键配置:
bind 0.0.0.0 # 允许所有 IP 访问(生产限制 IP) protected-mode no # 关闭保护模式(否则远程无法连接) requirepass 你的密码 # 设置密码(避免未授权访问)
-
重启服务:
sudo systemctl restart redis-server
3. 基础操作(redis-cli 命令)
操作目标 | 命令示例 |
---|---|
登录(带密码) | redis-cli -u redis://:你的密码@127.0.0.1:6379 或登录后 AUTH 你的密码 |
存储键值对(字符串) | set name "张三" |
获取值 | get name (返回 "张三") |
存储哈希(对象) | hset user:1 name "李四" age 30 |
获取哈希值 | hgetall user:1 (返回所有字段和值) |
查看所有键 | keys * |
退出客户端 | exit 或 quit |
4. 服务管理
# 查看状态
sudo systemctl status redis-server
# 启动/停止/重启
sudo systemctl start/stop/restart redis-server
# 设置开机自启
sudo systemctl enable redis-server
五、三大数据库对比与适用场景
特性 | mysql | mongodb | redis |
---|---|---|---|
数据模型 | 关系型(表结构) | 文档型(bson) | 键值对(多种结构) |
适用数据 | 结构化、强关联数据 | 非结构化、半结构化 | 缓存、会话、计数器 |
读写性能 | 中(磁盘 io) | 高(内存 + 磁盘) | 极高(纯内存) |
事务支持 | 完整 acid | 单文档 acid | 部分支持(redis 6.0+) |
典型场景 | 订单系统、用户管理 | 日志存储、内容管理 | 缓存加速、秒杀计数 |
通过本文,你可以快速掌握 ubuntu 下三大数据库的核心用法。实际开发中,需根据业务场景选择合适的工具(如用 redis 做缓存、mysql 存业务数据、mongodb 存非结构化日志),并做好权限控制与数据备份,保障系统稳定运行。