温馨提示×

Debian MariaDB如何安装配置

小樊
35
2025-12-19 02:23:36
栏目: 云计算

Debian 上安装与配置 MariaDB 的完整步骤

一 安装与启动

  • 更新索引并安装服务器包:
    • sudo apt update
    • sudo apt install mariadb-server
  • 安装完成后服务会自动启动,检查状态:
    • sudo systemctl status mariadb
  • Debian 12 的官方仓库中,默认版本为 MariaDB 10.11.x;在其他版本(如 Debian 10)仓库版本会不同,但安装与启动方式一致。

二 安全初始化

  • 执行安全配置向导,按提示完成:
    • sudo mysql_secure_installation
    • 建议选择:设置 root 密码、删除匿名用户、禁止 root 远程登录、移除测试数据库、重载权限表。
  • 默认认证方式说明:
    • Debian 上的 root 用户默认使用 unix_socket 插件,仅当以系统 root 或加 sudo 调用 mysql 客户端时才能登录,安全性更高,建议保留此默认。
    • 如需使用密码从应用或 phpMyAdmin 以 root 登录,可改为经典密码认证:
      • mysql -u root -p
      • ALTER USER ‘root’@‘localhost’ IDENTIFIED VIA mysql_native_password;
      • ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的强密码’;
      • 之后可用 mysql -u root -p 登录。

三 基本配置与目录

  • 配置文件结构:
    • 主配置为 /etc/mysql/my.cnf,并通过 !includedir 引入 /etc/mysql/conf.d//etc/mysql/mariadb.conf.d/ 下的 *.cnf 片段(Debian 10 常见为 50-server.cnf;Debian 12 常见为 50-server.cnf 等)。推荐将自定义配置放入 conf.d 目录,避免直接改动上游文件。
  • 常用配置项与路径示例:
    • 监听地址:在 [mysqld] 中设置 bind-address(如仅本地 127.0.0.1,或 0.0.0.0 允许远程;生产环境请配合防火墙与访问控制)。
    • 数据目录:datadir 通常为 /var/lib/mysql(可用 SHOW VARIABLES LIKE ‘%datadir%’; 查看)。
    • 典型参数位置:端口、socket、日志、缓存等均可在 [mysqld] 段按需调整。

四 远程访问与防火墙

  • 修改服务端监听(仅当需要远程连接时):
    • 编辑 /etc/mysql/mariadb.conf.d/50-server.cnf(或相应版本文件),将 bind-address 改为:
      • bind-address = 0.0.0.0(允许所有地址;如仅内网可改为内网网段)
    • 重启服务:sudo systemctl restart mariadb
  • 创建远程管理用户(示例):
    • mysql -u root -p
    • CREATE USER ‘admin’@‘%’ IDENTIFIED BY ‘强密码’;
    • GRANT ALL PRIVILEGES ON . TO ‘admin’@‘%’ WITH GRANT OPTION;
    • FLUSH PRIVILEGES;
  • 防火墙放行(UFW 示例):
    • sudo ufw allow 3306/tcp
    • 注意:暴露 3306 到公网存在安全风险,建议仅在内网或配合 TLS/SSL、强口令、限制来源 IP 使用。

五 创建业务库与用户及验证

  • 登录数据库:mysql -u root -p
  • 创建数据库与专用用户并授权(最小权限原则):
    • CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER ‘appuser’@‘localhost’ IDENTIFIED BY ‘强密码’;
    • GRANT ALL PRIVILEGES ON appdb.* TO ‘appuser’@‘localhost’;
    • FLUSH PRIVILEGES;
  • 简单连通性验证(命令行):
    • mysql -u appuser -p -h 127.0.0.1 appdb
  • LAMP/LNMP 场景中,还需安装对应组件并配置应用连接信息(如 PHP 的 mysqli/pdo、Nginx/Apache 站点配置等),确保应用以专用用户连接上述库。

0