一键部署MySQL Redis PostgreSQL

一、MySQL / MariaDB

安装 MariaDB(MySQL 的完全开源替代)

# 安装
sudo apt update
sudo apt install -y mariadb-server

# 启动服务
sudo systemctl start mariadb
sudo systemctl enable mariadb     # 开机自启

# 安全初始化
sudo mysql_secure_installation
# 依次提示:
# 1. Set root password? Y → 输入密码
# 2. Remove anonymous users? Y
# 3. Disallow root login remotely? N(开发需要远程连接)
# 4. Remove test database? Y
# 5. Reload privilege tables? Y

# 验证运行状态
sudo systemctl status mariadb
# 应显示: active (running) ✅

创建用户与数据库

# 登录 MariaDB
sudo mysql -u root -p

-- 在 SQL 提示符下执行:
-- 创建数据库
CREATE DATABASE myapp 
    DEFAULT CHARACTER SET utf8mb4 
    COLLATE utf8mb4_unicode_ci;

-- 创建用户并授权(% 表示允许任意主机连接)
CREATE USER 'devuser'@'%' IDENTIFIED BY 'dev_password_123';
GRANT ALL PRIVILEGES ON myapp.* TO 'devuser'@'%';
FLUSH PRIVILEGES;

-- 验证连接
SHOW DATABASES;
SELECT User, Host FROM mysql.user;

-- 退出
EXIT;

允许远程连接

# 编辑配置文件
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

修改以下行:

# 找到 bind-address 这行,改为:
bind-address = 0.0.0.0

# 确保 port = 3306(默认应该就是)
port = 3306
# 重启生效
sudo systemctl restart mariadb

# 测试本地连接
mysql -u devuser -p -h 127.0.0.1 myapp
# 输入密码后能进入 ✅

常用操作速查

-- 查看所有数据库
SHOW DATABASES;

-- 查看当前库的所有表
SHOW TABLES;

-- 查看表结构
DESCRIBE tablename;
-- 或
SHOW COLUMNS FROM tablename;

-- 导入 SQL 文件
source /path/to/dump.sql;
-- 或命令行:mysql -u user -p dbname < dump.sql

-- 导出数据库
mysqldump -u devuser -p myapp > backup_$(date +%Y%m%d).sql

二、Redis — 内存数据库之王

安装与启动

# 安装
sudo apt install -y redis-server

# 启动
sudo systemctl start redis-server
sudo systemctl enable redis-server   # 开机自启

# 验证(应返回 PONG)
redis-cli ping
# PONG

常用操作

# 连接 Redis
redis-cli

# ====== 基础操作 ======
SET mykey "Hello WSL"
GET mykey
# "Hello WSL"

DEL mykey

# ====== 数据类型示例 ======
# Hash(适合对象存储)
HSET user:1001 name "张三" age 28 city "北京"
HGETALL user:1001
# 1) "name"  2) "张三"  3) "age"  4) "28"

# List(适合队列)
LPUSH tasks "deploy code"
LPUSH tasks "write tests"
LPUSH tasks "fix bug"
LRANGE tasks 0 -1
# 1) "fix bug"  2) "write tests"  3) "deploy code"

# Set(适合去重/标签)
SADD tags python linux wsl
SMEMBERS tags

# Sorted Set(适合排行榜)
ZADD leaderboard 2500 "Alice"
ZADD leaderboard 3000 "Bob"
ZADD排行榜 2800 "Charlie"
ZREVRANGE leaderboard 0 -1 WITHSCORES

# ====== 实用命令 ======
KEYS *                    # 查看所有 key(慎用生产!)
DBSIZE                    # key 数量
INFO server               # 服务器信息
FLUSHALL                  # 清空所有数据 ⚠️
EXIT                      # 退出

Redis 配置优化

# 备份原配置
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak

# 编辑配置(开发环境推荐设置)
sudo nano /etc/redis/redis.conf

关键配置项:

# 绑定地址(允许远程访问)
bind 0.0.0.0

# 设置密码(生产必须!开发可选)
requirepass your_dev_password

# 持久化:RDB 快照
save 900 1        # 900秒内至少1次写操作就保存
save 300 10       # 300秒内至少10次写操作
save 60 10000     # 60秒内至少10000次写操作
dbfilename dump.rdb
dir /var/lib/redis

# 最大内存限制(根据你的系统调整)
maxmemory 512mb
maxmemory-policy allkeys-lru
# 重启使配置生效
sudo systemctl restart redis-server

# 验证新配置
redis-cli CONFIG GET maxmemory
redis-cli INFO server | grep redis_version

三、PostgreSQL — 功能最强大的开源数据库

安装

# Ubuntu 24.04 可以直接 apt 安装
sudo apt install -y postgresql postgresql-contrib

# 启动
sudo systemctl start postgresql
sudo systemctl enable postgresql

# 验证
sudo systemctl status postgresql
# active (running) ✅

# 查看版本
psql --version
# psql (PostgreSQL) 16.x

创建用户与数据库

PostgreSQL 使用 postgres 系统用户进行管理:

# 切换到 postgres 用户
sudo -u postgres psql

-- 创建用户(带密码)
CREATE USER devuser WITH PASSWORD 'dev_pass_123';

-- 创建数据库
CREATE DATABASE myapp OWNER devuser;

-- 授权
GRANT ALL PRIVILEGES ON DATABASE myapp TO devuser;

-- 退出 psql
\q

连接测试

# 用新建用户连接
psql -h localhost -U devuser -d myapp
# 输入密码后进入

-- 测试建表
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT NOW()
);

INSERT INTO users (name, email) VALUES ('Test', 'test@example.com');
SELECT * FROM users;

\q

远程连接配置

# 编辑 pg_hba.conf(客户端认证)
sudo nano /etc/postgresql/16/main/pg_hba.conf

添加以下行(在 IPv4 local connections 下面):

# 允许密码认证的远程连接
host    all             all             0.0.0.0/0               scram-sha-256
# 编辑 postgresql.conf(监听地址)
sudo nano /etc/postgresql/16/main/postgresql.conf

修改:

# listen_addresses = 'localhost'
listen_addresses = '*'
# 重启 PostgreSQL
sudo systemctl restart postgresql

# 确认端口在监听
ss -tlnp | grep 5432
# LISTEN  0  128  0.0.0.0:5432

DBeaver 配置方法(推荐)

1. Windows 上安装 DBeaver(直接 exe 安装)
2. 打开 DBeaver → 新建数据库连接
3. 选择数据库类型(MySQL / PostgreSQL / Redis 等)

MySQL 连接设置:
├── Host: localhost
├── Port: 3306
├── Database: myapp
├── Username: devuser
└── Password: dev_password_123

PostgreSQL 连接设置:
├── Host: localhost
├── Port: 5432
├── Database: myapp
├── Username: devuser
└── Password: dev_pass_123

Redis 连接(需安装 Redis 插件):
├── Host: localhost
├── Port: 6379
└── Password: (如果设置了的话)

4. 点击 "测试连接" → 成功后保存

五、一键启动脚本

创建一个方便的管理脚本:

cat > ~/db-manager.sh << 'SCRIPT'
#!/bin/bash
# 数据库管理脚本

case "$1" in
    start)
        echo "🚀 启动所有数据库..."
        sudo systemctl start mariadb
        sudo systemctl start redis-server
        sudo systemctl start postgresql
        echo "✅ 全部已启动"
        ;;
    stop)
        echo "⏹️  停止所有数据库..."
        sudo systemctl stop mariadb
        sudo systemctl stop redis-server
        sudo systemctl stop postgresql
        echo "✅ 全部已停止"
        ;;
    status)
        echo "=== MariaDB ==="
        systemctl is-active mariadb
        echo "=== Redis ==="
        systemctl is-active redis-server
        echo "=== PostgreSQL ==="
        systemctl is-active postgresql
        ;;
    ports)
        echo "=== 数据库端口占用 ==="
        ss -tlnp | grep -E ':(3306|5432|6379)\s'
        ;;
    *)
        echo "用法: $0 {start|stop|status|ports}"
        ;;
esac
SCRIPT

chmod +x ~/db-manager.sh

# 使用方式
~/db-manager.sh start      # 启动全部
~/db-manager.sh status     # 检查状态
~/db-manager.sh ports      # 查看端口
~/db-manager.sh stop       # 停止全部

六、数据备份策略

#!/bin/bash
# save as ~/backup-db.sh
BACKUP_DIR="/mnt/d/db-backups/$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"

echo "📦 开始备份数据库到 $BACKUP_DIR"

# 备份 MySQL/MariaDB
mysqldump -u devuser -p'dev_password_123' myapp \
    > "$BACKUP_DIR/mysqldb_$(date +%H%M%S).sql"

# 备份 PostgreSQL
pg_dump -U devuser -h localhost myapp \
    > "$BACKUP_DIR/pgdb_$(date +%H%M%S).sql"

# 备份 Redis
redis-cli BGSAVE
cp /var/lib/redis/dump.rdb "$BACKUP_DIR/redis_$(date +%H%M%S).rdb"

echo "✅ 备份完成!文件位置: $BACKUP_DIR"
ls -lh "$BACKUP_DIR"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值