数据库是动态网站的心脏。本指南将帮助您在 MySQL 和 PostgreSQL 之间做出选择,并提供从安装到维护的全套解决方案。
📊 数据库选择
MySQL 和 PostgreSQL 是目前最流行的两个开源关系型数据库。如何选择?
| 特性 | 🐬 MySQL / MariaDB | 🐘 PostgreSQL |
|---|---|---|
| 适用场景 | 通用 Web 应用 (WordPress, Discuz) | 复杂数据分析、GIS 地理信息、高并发写入 |
| 生态社区 | 极其庞大,教程资源最丰富 | 技术氛围浓厚,扩展插件丰富 |
| SQL 标准 | 部分支持 | 严格遵守 SQL 标准 (ACID) |
💡
一句话建议: 如果您是新手或搭建 WordPress,请无脑选择 MySQL (MariaDB)。如果您是开发人员,需要处理复杂数据结构,PostgreSQL 是更强大的选择。
🐬 MySQL 安装与配置
1. 安装 MySQL 服务器
sudo apt update
sudo apt install mysql-server -y
# 启动服务
sudo systemctl start mysql
sudo systemctl enable mysql 2. 运行安全初始化脚本
这是安装后最重要的步骤,用于设置 root 密码并移除不安全的默认设置。
sudo mysql_secure_installation 脚本会引导您设置密码强度、移除匿名用户、禁止 root 远程登录等。建议全部选 Y (Yes)。
3. 创建新数据库和用户
-- 登录数据库
sudo mysql
-- 创建数据库
CREATE DATABASE myapp;
-- 创建用户并授权
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT; 🐘 PostgreSQL 安装与配置
1. 安装 PostgreSQL
sudo apt update
sudo apt install postgresql postgresql-contrib -y 2. 切换用户与登录
PostgreSQL 安装后会创建一个名为 postgres 的 Linux 用户。
# 切换用户
sudo -i -u postgres
# 进入数据库命令行
psql
# 修改默认密码
\password postgres 🛡️ 安全加固
🔒 限制网络访问
如果不需远程访问,确保数据库只监听 127.0.0.1。如果必须远程,使用 UFW 限制特定 IP。
ufw allow from 1.2.3.4 to any port 3306 🔑 专用用户权限
避免使用 root 账户连接应用。为每个应用创建独立的数据库和用户,并只授予必要的权限。
⚡ 性能调优基础
数据库的默认配置通常比较保守。修改配置文件(MySQL: /etc/mysql/mysql.conf.d/mysqld.cnf)可以显著提升性能。
| 参数 | 说明与建议 |
|---|---|
| innodb_buffer_pool_size | 最关键参数。建议设为物理内存的 50%-70%(如果只运行数据库)。 |
| max_connections | 最大连接数。默认 151 可能不够,建议根据内存调整至 300-500。 |
💾 备份与恢复
自动备份脚本示例
创建一个简单的 Shell 脚本并添加到 Crontab 定时任务中,每天凌晨自动备份。
#!/bin/bash
# 备份 MySQL 数据库
TIMESTAMP=$(date +"%Y%m%d%H%M")
BACKUP_DIR="/var/backups/mysql"
MYSQL_USER="root"
MYSQL_PASSWORD="yourpassword"
mkdir -p $BACKUP_DIR
mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD --all-databases | gzip > "$BACKUP_DIR/db_backup_$TIMESTAMP.sql.gz"
# 删除 7 天前的备份
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -delete 🚀 下一步行动
数据库部署完毕,您的应用后端环境已搭建完成。接下来,让我们进入网络工具篇: