安装数据库(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
关于定期备份和下载方法,请参阅备份服务器数据。