跳到主要内容
← 指南列表

安装数据库(MariaDB / MySQL)

这里介绍如何在 Ubuntu 服务器上安装网站或机器人要使用的数据库。MariaDB 的用法与 MySQL 几乎相同,大部分 MySQL 资料都可以直接使用。

1. 安装

sudo apt update
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

2. 基本安全设置

sudo mariadb-secure-installation

出现提问时,按下面这样回答就比较稳妥。

  • 删除匿名用户(Remove anonymous users)→ Y
  • 禁止 root 远程登录(Disallow root login remotely)→ Y
  • 删除测试 DB(Remove test database)→ Y

3. 创建应用专用 DB 和账户

在应用中,用该应用专用的账户代替 root 会更安全。

sudo mariadb
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'long-complex-password';
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp'@'localhost';
FLUSH PRIVILEGES;
EXIT;

在应用的设置中填入以下值。

  • 主机:localhost(或 127.0.0.1)/ 端口:3306
  • DB 名称:myapp / 账户:myapp / 密码:上面设置的值

⚠️ 请勿将 DB 开放到互联网

如果 DB 端口(3306)对外开放,来自世界各地的自动化登录尝试会整天涌入。尤其是 root 账户如果使用短密码,很快就会被攻破。

  • 如果应用和 DB 在同一台服务器上,就不需要外部连接。Ubuntu 的 MariaDB 默认只接受来自服务器内部(127.0.0.1)的连接,请保持原样。
  • 如果想用本地电脑上的 DB 管理程序(HeidiSQL、DBeaver 等)连接,请不要开放端口,而是使用 SSH 隧道。大多数程序都有“SSH 隧道”设置项,只需填入 SSH 连接信息即可。
  • 如果是用 Docker 运行的 DB,请务必查看 Docker 指南中的防火墙注意事项。

4. 备份

sudo mysqldump myapp > myapp-$(date +%F).sql

关于定期备份和下载方法,请参阅备份服务器数据。

如果问题仍未解决,请在 Discord 提交工单。