企业服务器操作系统(如CentOS、Ubuntu Server)安装数据库前需要做哪些基础配置?

在企业服务器上安装数据库前,需要进行系统级的基础配置以确保安全性、稳定性和性能。以下是关键步骤:


一、系统更新与基础安全

  1. 更新系统

    # CentOS/RHEL
    sudo yum update -y
    
    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
  2. 创建专用用户(避免使用root运行数据库)

    sudo useradd -m -s /bin/bash dbadmin
    sudo passwd dbadmin
  3. 配置SSH安全

    • 禁用root远程登录
    • 使用密钥认证
    • 修改默认SSH端口(可选)
  4. 配置防火墙

    # CentOS (firewalld)
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --permanent --add-port=数据库端口/tcp
    sudo firewall-cmd --reload
    
    # Ubuntu (ufw)
    sudo ufw allow ssh
    sudo ufw allow 数据库端口/tcp
    sudo ufw enable

二、存储与文件系统优化

  1. 独立数据分区

    • 使用XFS/ext4文件系统(避免使用Btrfs)
    • 挂载参数优化(如noatime,nodiratime
      示例/etc/fstab配置:

      /dev/sdb1  /var/lib/mysql  xfs  defaults,noatime,nodiratime  0 0
  2. 禁用交换分区(对内存敏感的数据库如Redis)

    sudo swapoff -a
    # 永久禁用:注释/etc/fstab中的swap行
  3. 调整文件描述符限制

    # 在/etc/security/limits.conf中添加
    * soft nofile 65535
    * hard nofile 65535

三、内核参数优化

编辑/etc/sysctl.conf(以MySQL为例):

# 网络连接优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# 内存与缓存
vm.swappiness = 1
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

# 文件系统
fs.file-max = 65535

# 数据库专用(MySQL/PostgreSQL)
kernel.sem = 250 32000 100 128

应用配置:sudo sysctl -p


四、时间同步与时区

# 安装NTP服务
sudo timedatectl set-timezone Asia/Shanghai
sudo systemctl enable chronyd  # CentOS
sudo systemctl enable systemd-timesyncd  # Ubuntu

五、SELinux/AppArmor配置

  • CentOS SELinux
    临时方案:setenforce 0
    永久方案:编辑/etc/selinux/configpermissive(生产环境需配置策略)
  • Ubuntu AppArmor
    按需调整配置文件(如MySQL在/etc/apparmor.d/usr.sbin.mysqld

六、数据库专用优化

  1. 禁用透明大页(Transparent Huge Pages)

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    # 永久配置:添加到/etc/rc.local
  2. 调整I/O调度器(SSD建议使用noop或deadline)

    echo noop > /sys/block/sda/queue/scheduler
  3. 创建数据库专用目录并设置权限

    sudo mkdir -p /data/db
    sudo chown -R dbadmin:dbadmin /data/db

七、监控与日志准备

  1. 安装基础监控工具(如htop, iotop, sysstat
  2. 配置日志轮转(logrotate)
  3. 设置数据库日志目录(如/var/log/mysql

八、备份与恢复准备

  1. 规划备份存储位置
  2. 测试系统快照功能(如LVM快照)
  3. 配置异地备份通道(可选)

九、环境检查清单

完成配置后验证:

  • [ ] 磁盘空间:df -h
  • [ ] 内存检查:free -h
  • [ ] 网络连通性:ping -c 4 网关/IP
  • [ ] 端口占用:ss -tlnp | grep 数据库端口
  • [ ] 时钟同步:timedatectl status

注意事项

  1. 测试环境验证:所有配置先在测试环境验证
  2. 文档记录:记录所有修改的配置项
  3. 回滚方案:准备配置回滚脚本
  4. 数据库版本兼容性:确认操作系统与数据库版本的兼容性

这些配置可根据具体数据库(MySQL、PostgreSQL、MongoDB等)和硬件规模进行调整。生产环境建议结合监控数据持续优化。

云服务器