温馨提示×

ubuntu环境如何配置数据库服务

小樊
58
2025-09-22 23:46:55
栏目: 智能运维

Ubuntu环境配置数据库服务指南(以MySQL和PostgreSQL为例)

一、MySQL数据库配置步骤

1. 准备工作

  • 更新系统包列表并升级现有软件包,确保系统环境最新:
    sudo apt update && sudo apt upgrade -y
    
  • 安装常用工具(可选但推荐):
    sudo apt install -y vim curl wget
    

2. 安装MySQL服务器

  • 使用APT包管理器安装MySQL(自动添加官方仓库):
    sudo apt install mysql-server -y
    
  • 安装过程中会提示设置root用户密码,请使用强密码(包含大小写字母、数字和特殊字符)。

3. 初始化配置

  • 运行安全配置向导,强化数据库安全性:
    sudo mysql_secure_installation
    
    按提示完成以下操作:
    • 设置root用户密码(若未设置);
    • 删除匿名用户;
    • 禁止root用户远程登录;
    • 删除测试数据库;
    • 重新加载权限表。

4. 启动与开机自启

  • 启动MySQL服务:
    sudo systemctl start mysql
    
  • 设置开机自动启动:
    sudo systemctl enable mysql
    
  • 验证服务状态:
    sudo systemctl status mysql  # 应显示“active (running)”
    

5. 登录与基本配置

  • 使用root用户登录MySQL:
    sudo mysql -u root -p
    
  • 修改root用户密码(可选,若初始密码复杂可跳过):
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword123!';
    FLUSH PRIVILEGES;
    
  • 创建专用数据库和用户(推荐):
    -- 创建数据库
    CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    -- 创建用户并设置密码
    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'UserPassword123!';
    -- 授权用户访问数据库
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
    -- 刷新权限
    FLUSH PRIVILEGES;
    -- 退出
    EXIT;
    

6. 远程访问配置(可选,生产环境需谨慎)

  • 编辑MySQL配置文件,允许远程连接:
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
    找到bind-address = 127.0.0.1,修改为:
    bind-address = 0.0.0.0
    
  • 重启MySQL服务:
    sudo systemctl restart mysql
    
  • 创建远程访问用户(限制IP更安全,如192.168.1.%):
    CREATE USER 'remoteuser'@'192.168.1.%' IDENTIFIED BY 'RemotePassword123!';
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'remoteuser'@'192.168.1.%';
    FLUSH PRIVILEGES;
    

7. 防火墙配置

  • 允许MySQL默认端口(3306):
    sudo ufw allow 3306/tcp
    sudo ufw enable  # 若未启用防火墙
    

8. 常用管理命令

  • 备份数据库:
    mysqldump -u myuser -p mydatabase > mydatabase_backup.sql
    
  • 恢复数据库:
    mysql -u myuser -p mydatabase < mydatabase_backup.sql
    
  • 查看MySQL状态:
    sudo systemctl status mysql
    
  • 查看错误日志:
    sudo tail -f /var/log/mysql/error.log
    

二、PostgreSQL数据库配置步骤

1. 准备工作

  • 同MySQL准备步骤(更新系统、安装工具)。

2. 安装PostgreSQL

  • 安装PostgreSQL及附加模块(如postgresql-contrib提供额外功能):
    sudo apt install postgresql postgresql-contrib -y
    
  • 安装完成后,PostgreSQL服务自动启动,默认管理员用户为postgres

3. 验证安装

  • 检查PostgreSQL版本:
    psql --version  # 输出类似“psql (PostgreSQL) 16.2 (Ubuntu 16.2-1.pgdg24.04+1)”
    
  • 验证服务状态:
    sudo systemctl status postgresql  # 应显示“active (running)”
    

4. 登录与基本配置

  • 切换到postgres用户并进入PostgreSQL命令行:
    sudo -u postgres psql
    
  • 修改postgres用户密码:
    ALTER USER postgres WITH ENCRYPTED PASSWORD 'StrongPostgresPassword123!';
    \q  # 退出
    
  • 创建专用数据库和用户:
    # 创建数据库
    sudo -u postgres createdb mydatabase
    # 创建用户
    sudo -u postgres createuser --interactive  # 按提示输入用户名,选择“超级用户”(若需)
    # 设置用户密码
    sudo -u postgres psql
    ALTER USER myuser WITH ENCRYPTED PASSWORD 'UserPassword123!';
    # 授权用户访问数据库
    \c mydatabase  # 连接到数据库
    GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;
    \q  # 退出
    

5. 远程访问配置(可选,生产环境需谨慎)

  • 编辑PostgreSQL配置文件,允许监听所有IP:
    sudo nano /etc/postgresql/<版本>/main/postgresql.conf  # 如“postgresql.conf”或“postgresql-16-main.conf”
    
    找到listen_addresses = 'localhost',修改为:
    listen_addresses = '*'
    
  • 编辑客户端认证文件,允许远程密码访问:
    sudo nano /etc/postgresql/<版本>/main/pg_hba.conf
    
    在文件末尾添加:
    host    all             all             0.0.0.0/0               scram-sha-256
    
  • 重启PostgreSQL服务:
    sudo systemctl restart postgresql
    

6. 防火墙配置

  • 允许PostgreSQL默认端口(5432):
    sudo ufw allow 5432/tcp
    sudo ufw enable
    

7. 常见管理命令

  • 进入PostgreSQL命令行:
    sudo -u postgres psql
    
  • 备份数据库:
    pg_dump -U myuser -d mydatabase > mydatabase_backup.sql
    
  • 恢复数据库:
    psql -U myuser -d mydatabase -f mydatabase_backup.sql
    
  • 查看PostgreSQL状态:
    sudo systemctl status postgresql
    
  • 查看日志文件:
    sudo tail -f /var/log/postgresql/postgresql-<版本>-main.log
    

三、注意事项

  1. 安全加固
    • 生产环境中禁止root/postgres用户远程登录,使用普通用户+SSH隧道访问。
    • 定期更新数据库软件包(sudo apt update && sudo apt upgrade)。
    • 为数据库用户设置强密码,避免使用默认密码。
  2. 性能优化
    • MySQL:调整innodb_buffer_pool_size(建议为物理内存的50%-70%)。
    • PostgreSQL:调整shared_buffers(建议为物理内存的25%)。
  3. 备份策略
    • 定期备份数据库(每日增量备份+每周全量备份),存储到异地或云存储。
  4. 监控工具
    • 使用htop(系统资源)、mytop(MySQL监控)、pg_stat_activity(PostgreSQL监控)等工具监控数据库状态。

0