ブログに戻る
1月 13, 2026ガイド

LinuxサーバーでMySQLデータベースをセットアップする方法

UbuntuおよびCentOSでのMySQLデータベースサーバーのインストール、セキュリティ保護、および管理に関する完全ガイド。

LinuxサーバーでMySQLデータベースをセットアップする方法

MySQLは、最も人気のあるオープンソースのリレーショナルデータベース管理システムの1つです。このガイドでは、Hiddence LinuxサーバーでのMySQLのインストール、セキュリティ保護、および構成について説明します。

MySQLのインストール

2026年現在、MySQL 8.0が最新の安定版です。インストールプロセスは、Ubuntu/DebianとRHELベースのディストリビューションで若干異なります。以下で両方の方法を説明します。

Ubuntu/Debianへのインストール

Ubuntu 22.04 LTS以降では、デフォルトのリポジトリでMySQL 8.0を利用可能です。aptを使用してインストールします:

bash
sudo apt update
sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql

# インストールの確認
sudo systemctl status mysql
mysql --version

RHEL / CentOS / AlmaLinux / Rocky Linuxへのインストール

RHELベースのディストリビューションでは、まずMySQLリポジトリを追加する必要があります。本番環境ではMySQL 8.0の使用が推奨されます:

bash
# MySQLリポジトリパッケージをダウンロードする
sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

# リポジトリをインストールする
sudo rpm -ivh mysql80-community-release-el9-1.noarch.rpm

# CentOS 8/Rocky Linux 8/AlmaLinux 8 の場合は以下を使用してください:
# sudo wget https://dev.mysql.com/get/mysql80-community-release-el8-7.noarch.rpm

# MySQLをインストールする
sudo yum install mysql-server -y

# MySQLを開始し、有効化する
sudo systemctl start mysqld
sudo systemctl enable mysqld

# インストールの確認
sudo systemctl status mysqld
mysql --version

インストールの検証

インストール後、MySQLが正しく動作していることを確認します:

bash
# サービスステータスを確認する
sudo systemctl status mysql  # Ubuntu/Debian
sudo systemctl status mysqld  # RHEL / CentOS

# MySQLバージョンを確認する
mysql --version

# 接続テスト(rootパスワードを求められます)
sudo mysql -u root -p

MySQLインストールのセキュリティ保護

MySQLセキュリティ設定スクリプトを実行します:

bash
sudo mysql_secure_installation
# プロンプトに従って、rootパスワードの設定、匿名ユーザーの削除、リモートrootログインの無効化などを行います。

データベースとユーザーの作成

bash
sudo mysql -u root -p
CREATE DATABASE myapp_db;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

ユーザーの管理

bash
sudo mysql -u root -p
# ユーザーを作成する
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

# 権限を付与する
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

# 権限を取り消す
REVOKE ALL PRIVILEGES ON database_name.* FROM 'newuser'@'localhost';

# ユーザーを削除する
DROP USER 'newuser'@'localhost';

リモートアクセスの有効化(オプション)

リモート接続を許可するには、bind-addressを変更します:

bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address = 127.0.0.1 を bind-address = 0.0.0.0 に変更する
sudo systemctl restart mysql
# また、ポート3306を許可するようにファイアウォールを構成してください

データベースのバックアップと復元

バックアップの作成と復元:

bash
# バックアップ
mysqldump -u root -p database_name > backup.sql

# 復元
mysql -u root -p database_name < backup.sql

ベストプラクティス

  • データベースユーザーには強力なパスワードを使用してください
  • ユーザーには必要な権限のみを付与してください
  • データベースを定期的にバックアップしてください
  • セキュリティパッチを適用するためMySQLを最新の状態に保ってください
  • データベースのパフォーマンスを監視し、クエリを最適化してください