MariaDB 是 MySQL 的一个高性能、开源的分支,它以兼容 MySQL 著称,同时提供了更高的稳定性和功能扩展性。在 Linux 服务器环境中部署 MariaDB 是许多 Web 开发人员和运维人员的基础技能。本文将手把手教你在主流的 Linux 发行版(如 Ubuntu/Debian 和 CentOS/RHEL)上安装、初始化配置 MariaDB,并创建数据库和用户。
一、环境准备
本教程以 Ubuntu Server 20.04/22.04 和 CentOS 8/Stream 9 为例。操作前请确保你拥有 root 权限或 sudo 权限。
二、安装 MariaDB
1. Ubuntu/Debian 系统
Ubuntu 源中通常已包含 MariaDB,可直接通过 APT 包管理器安装。
sudo apt update
sudo apt install mariadb-server mariadb-client
2. CentOS/RHEL 系统
CentOS 可以使用 YUM/DNF 包管理器安装。较新的 RHEL 9/CentOS Stream 9 默认源已提供 MariaDB。
sudo dnf update
sudo dnf install mariadb-server mariadb-client
三、启动并设置开机自启
大多数现代 Linux 发行版安装完成后会自动启动 MariaDB 服务,但我们可以手动确认并设置开机自启。
# 启动服务
sudo systemctl start mariadb
# 设置开机自启
sudo systemctl enable mariadb
# 查看服务状态
sudo systemctl status mariadb
四、安全初始化配置
MariaDB 提供了一个交互式的安全脚本,用于设置 root 密码、移除匿名用户、禁用远程 root 登录等,强烈建议执行。
sudo mysql_secure_installation
脚本会依次询问几个问题:
- Set root password? 设置 root 密码。选择 Y,然后输入新密码。
- Remove anonymous users? 移除匿名用户。选择 Y。
- Disallow root login remotely? 禁止 root 远程登录。选择 Y。
- Remove test database? 移除测试数据库。选择 Y。
- Reload privilege tables now? 重新加载权限表。选择 Y。
五、连接数据库
使用 mysql 客户端连接 MariaDB。如果是系统本地的 root 用户,通常可以使用 socket 认证直接登录;如果是远程用户或密码认证,则需提供密码。
# 本地 root 登录
sudo mysql -u root
# 或使用密码登录
mysql -u root -p
六、创建数据库和用户
登录后,我们可以创建一个新的数据库和一个权限受限的应用用户。
# 创建数据库
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 创建用户,并限制其只能从 localhost 或特定 IP 访问
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_password';
CREATE USER 'myuser'@'192.168.1.%' IDENTIFIED BY 'your_password';
# 授予用户对该数据库的特定权限(如全部权限,生产环境建议最小化)
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'192.168.1.%';
# 刷新权限
FLUSH PRIVILEGES;
七、验证配置
退出 root 会话,使用新创建的用户连接数据库,验证是否成功。
mysql -u myuser -p mydb
八、可选:配置防火墙
如果你需要远程访问 MariaDB(默认端口 3306),请确保防火墙开放该端口。但请注意,生产环境中开放数据库端口存在安全风险,建议通过 VPN 或堡垒机访问,或仅对可信 IP 开放。
# 使用 ufw 为例(Ubuntu)
sudo ufw allow 3306/tcp
sudo ufw reload
# 使用 firewalld 为例(CentOS)
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
九、总结
通过以上步骤,你已成功在 Linux 服务器上安装并部署了 MariaDB,完成了基本的安全加固和用户管理。接下来,你就可以在你的 Web 应用(如 PHP、Python、Java)中连接并使用这个数据库了。建议定期更新 MariaDB 包,并监控服务状态,以确保数据库的安全与稳定运行。