本文へスキップ
← ガイド一覧

データベースをインストールする (MariaDB / MySQL)

Webサイトやボットで使うデータベースを、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)からの接続だけを受け付けるので、そのままにしておいてください。
  • 自分のPCのDB管理プログラム(HeidiSQL、DBeaverなど)で接続したい場合は、ポートを開けずにSSHトンネルを使ってください。ほとんどのプログラムに「SSHトンネル」の設定欄があり、SSHの接続情報を入れるだけで使えます。
  • DockerでDBを立ち上げた場合は、Dockerガイドのファイアウォールに関する注意を必ず確認してください。

4. バックアップ

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

定期バックアップとダウンロードの方法は、サーバーのデータをバックアップするを参考にしてください。

解決しない問題がある場合は、Discordのチケットでお問い合わせください。