当前位置: 首页 > java >正文

【Ubuntu系统实战】一站式部署与管理MySQL、MongoDB、Redis三大数据库

目录

前言

一、环境准备与系统优化

二、MySQL 8.0 部署与配置

2.1 安装MySQL服务器

2.2 安全配置与初始化

2.3 创建专用数据库用户

2.4 配置远程访问(谨慎操作)

三、MongoDB 6.0 部署与配置

3.1 安装MongoDB社区版

3.2 验证安装与基本操作

3.3 启用身份验证

四、Redis 7.0 部署与配置

4.1 安装Redis服务器

4.2 基本配置与优化

4.3 Redis基本操作

五、安全加固与防火墙配置

5.1 配置UFW防火墙

5.2 各数据库安全建议

六、常用管理命令汇总

MySQL管理命令:

MongoDB管理命令:

Redis管理命令:

七、性能监控与优化

7.1 安装监控工具

7.2 各数据库性能优化建议

结语


本文将为您提供在Ubuntu操作系统下安装、配置、管理MySQL、MongoDB和Redis的完整指南,涵盖安全加固、基本操作和性能优化,助您快速搭建高效的开发环境。

前言

在当今的软件开发中,数据库是任何应用程序的核心组件。无论是传统的关系型数据(MySQL)、灵活的文档存储(MongoDB)还是高性能的内存缓存(Redis),掌握它们的部署与管理是每位开发者的必备技能。本文将带领大家在Ubuntu 20.04/22.04 LTS系统上,一站式完成这三种主流数据库的环境搭建。


一、环境准备与系统优化

在开始安装前,我们先对系统进行基础配置。

bash

# 1. 更新系统软件包列表
sudo apt update && sudo apt upgrade -y# 2. 安装常用工具
sudo apt install -y vim curl wget gnupg software-properties-common# 3. 设置时区(可选)
sudo timedatectl set-timezone Asia/Shanghai# 4. 关闭swap(提升数据库性能)
sudo swapoff -a
sudo sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

二、MySQL 8.0 部署与配置

2.1 安装MySQL服务器

bash

# 添加MySQL官方APT仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
sudo apt update# 安装MySQL服务器
sudo apt install -y mysql-server# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql

2.2 安全配置与初始化

bash

# 运行安全安装脚本
sudo mysql_secure_installation# 根据提示完成以下设置:
# - 设置root密码
# - 移除匿名用户
# - 禁止root远程登录
# - 移除测试数据库
# - 重新加载权限表

2.3 创建专用数据库用户

mysql

-- 登录MySQL
sudo mysql -u root -p-- 创建新用户并授权
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
CREATE DATABASE mydatabase;
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2.4 配置远程访问(谨慎操作)

bash

# 编辑MySQL配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf# 将bind-address修改为:
bind-address = 0.0.0.0

mysql

-- 创建远程访问用户(限制IP更安全)
CREATE USER 'remoteuser'@'192.168.1.%' IDENTIFIED BY 'RemotePass123!';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'remoteuser'@'192.168.1.%';

bash

# 重启MySQL服务
sudo systemctl restart mysql

三、MongoDB 6.0 部署与配置

3.1 安装MongoDB社区版

bash

# 导入MongoDB GPG密钥
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -# 添加MongoDB仓库
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.listsudo apt update
sudo apt install -y mongodb-org# 启动MongoDB服务
sudo systemctl start mongod
sudo systemctl enable mongod

3.2 验证安装与基本操作

bash

# 检查服务状态
sudo systemctl status mongod# 连接MongoDB shell
mongosh

javascript

// MongoDB基本操作
use mydatabase// 插入文档
db.users.insertOne({name: "张三",age: 28,email: "zhangsan@example.com",created_at: new Date()
})// 查询文档
db.users.find()
db.users.find({ age: { $gt: 25 } })// 创建索引
db.users.createIndex({ email: 1 }, { unique: true })

3.3 启用身份验证

javascript

// 在mongosh中创建管理员用户
use admin
db.createUser({user: "admin",pwd: "AdminPassword123!",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})// 启用认证后重新登录
db.auth("admin", "AdminPassword123!")

bash

# 启用认证后编辑配置文件
sudo vim /etc/mongod.conf# 取消注释security部分并添加:
security:authorization: enabled

bash

# 重启MongoDB
sudo systemctl restart mongod

四、Redis 7.0 部署与配置

4.1 安装Redis服务器

bash

# 添加Redis官方仓库
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.listsudo apt update
sudo apt install -y redis# 启动Redis服务
sudo systemctl start redis-server
sudo systemctl enable redis-server

4.2 基本配置与优化

bash

# 编辑Redis配置文件
sudo vim /etc/redis/redis.conf

重要配置项修改:

config

# 绑定地址(允许远程访问时修改)
bind 0.0.0.0# 启用认证
requirepass YourStrongRedisPassword123!# 最大内存限制
maxmemory 2gb
maxmemory-policy allkeys-lru# 启用AOF持久化
appendonly yes

bash

# 重启Redis服务
sudo systemctl restart redis-server

4.3 Redis基本操作

bash

# 连接Redis CLI
redis-cli# 认证(如果设置了密码)
AUTH YourStrongRedisPassword123!

redis

# 基本命令示例
SET username "john_doe"
GET usernameHSET user:1000 name "Alice" age 30 email "alice@example.com"
HGETALL user:1000SADD tags "python" "database" "redis"
SMEMBERS tags# 设置过期时间
SETEX session:token 3600 "user_data"
TTL session:token

五、安全加固与防火墙配置

5.1 配置UFW防火墙

bash

# 安装UFW
sudo apt install -y ufw# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing# 开放必要端口
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
sudo ufw allow 3306/tcp comment 'MySQL'  # 建议仅对特定IP开放
sudo ufw allow 6379/tcp comment 'Redis'  # 建议仅对特定IP开放
sudo ufw allow 27017/tcp comment 'MongoDB' # 建议仅对特定IP开放# 启用防火墙
sudo ufw enable

5.2 各数据库安全建议

MySQL安全建议:

  • 定期运行mysql_secure_installation

  • 为每个应用创建独立用户和数据库

  • 启用二进制日志用于备份和恢复

MongoDB安全建议:

  • 启用身份验证和授权

  • 配置TLS/SSL加密传输

  • 限制网络暴露范围

Redis安全建议:

  • 务必设置强密码(requirepass)

  • 重命名或禁用危险命令(FLUSHALL、CONFIG)

  • 使用非默认端口


六、常用管理命令汇总

MySQL管理命令:

bash

# 服务管理
sudo systemctl status mysql
sudo systemctl restart mysql# 备份与恢复
mysqldump -u username -p database_name > backup.sql
mysql -u username -p database_name < backup.sql

MongoDB管理命令:

bash

# 服务管理
sudo systemctl status mongod
sudo journalctl -u mongod -f  # 查看日志# 备份与恢复
mongodump --uri="mongodb://username:password@localhost:27017/mydatabase"
mongorestore --uri="mongodb://username:password@localhost:27017/mydatabase" dump/

Redis管理命令:

bash

# 服务管理
sudo systemctl status redis-server
redis-cli ping  # 测试连接# 持久化操作
redis-cli save  # 立即保存RDB
redis-cli bgrewriteaof  # 重写AOF文件

七、性能监控与优化

7.1 安装监控工具

bash

# 安装基础监控工具
sudo apt install -y htop iotop nethogs# 安装数据库专用监控工具
sudo apt install -y mytop mongotop redis-tools

7.2 各数据库性能优化建议

MySQL优化:

  • 调整InnoDB缓冲池大小

  • 优化查询语句,添加适当索引

  • 使用连接池管理数据库连接

MongoDB优化:

  • 创建合适的索引覆盖查询

  • 使用投影限制返回字段

  • 分片处理大规模数据集

Redis优化:

  • 合理设置最大内存和淘汰策略

  • 使用管道(pipeline)减少网络往返

  • 考虑使用集群模式分散压力


结语

通过本文的详细指南,您应该已经在Ubuntu系统上成功部署了MySQL、MongoDB和Redis三大数据库,并完成了基本的安全配置。这三种数据库各有其优势和适用场景:

  • MySQL:适合结构化数据、事务处理

  • MongoDB:适合半结构化数据、快速迭代开发

  • Redis:适合缓存、会话存储、实时数据处理

在实际项目开发中, often会根据业务需求同时使用多种数据库,发挥各自优势,构建健壮的应用架构。

下一步建议:

  1. 深入学习每种数据库的高级特性和最佳实践

  2. 探索主从复制、集群部署等高可用方案

  3. 制定定期备份和灾难恢复计划

  4. 使用Prometheus+Grafana搭建完整的监控体系

希望本文对您的学习和开发工作有所帮助!如有任何问题,欢迎在评论区留言讨论。

http://www.xdnf.cn/news/18891.html

相关文章:

  • 负载均衡之平滑加权轮询(Smooth Weighted Round Robin)详解与实现
  • MIME类型与文件上传漏洞 - 网络安全视角
  • AI解决生活小事系列——用AI给我的电脑做一次“深度体检”
  • Windows下的异步IO通知模型
  • 一款基于 .NET 开源、功能强大的 Windows 搜索工具
  • C# .NET支持多线程并发的压缩组件
  • 2026 济南玉米深加工展:探索淀粉技术突破与可持续发展解决方案
  • 你真的了解操作系统吗?
  • Feign 调用为服务报 `HardCodedTarget(type=xxxClient, name=xxxfile, url=http://file)`异常
  • 大模型入门实战 | 基于 YOLO 数据集微调 Qwen2.5-VL-3B-Instruct 的目标检测任务
  • YggJS RButton 按钮组件 v1.0.0 使用教程
  • 【vue eslint】报错:Component name “xxxx“ should always be multi-word
  • 云上“安全管家”|移动云以云安全中心为企业数字化升级保驾护航
  • 科技信息差(8.26)
  • 【软考论文】论静态测试方法及其应用
  • PortSwigger靶场之Blind SQL injection with out-of-band interaction通关秘籍
  • 软考-系统架构设计师 计算机系统基础知识详细讲解
  • 【46页PPT】AI智能中台用ABC+IOT重新定义制造(附下载方式)
  • 相机Camera日志实例分析之十五:相机Camx【照片后置HDR拍照】单帧流程日志详解
  • 2-5 倍性能提升,30% 成本降低,阿里云 SelectDB 存算分离架构助力波司登集团实现降本增效
  • 支持向量机核心知识总结
  • Java大厂面试实战:从Spring Boot到微服务架构的深度剖析
  • 宠物智能,是「养宠自由」还是「焦虑税」?
  • 【分享开题答辩过程】一辆摩托车带来的通关副本攻略----《摩托车网上销售系统》开题答辩!!
  • Stream流中的Map与flatMap的区别
  • AI安全监控与人才需求的时间悖论(对AI安全模型、AI安全人才需求的一些思考)
  • 前沿技术借鉴研讨-2025.8.26(多任务分类/预测)
  • 基于CentOS7:Linux服务器的初始化流程
  • 从零开始学MCP(7) | 实战:用 MCP 构建论文分析智能体
  • Java 大视界 -- Java 大数据机器学习模型在金融市场波动预测与资产配置动态调整中的应用