こういった経験は珍しくありません。MySQLのインストール自体は難しくありませんが、リポジトリ選択・GPGキーの確認・初期セキュア設定と、現場で詰まりやすいポイントが複数あります。ディストリビューションのデフォルトリポジトリに頼ると、MySQL本体ではなくMariaDBが入ったり、MySQL 8.0のままEOL後も使い続けるはめになったりします。
この記事では、MySQL公式リポジトリを使ったMySQL 8.4 LTS(Long Term Support)の導入手順を、Rocky Linux 9(dnf系)とUbuntu 24.04 LTS(apt系)の両OSに対応する形で解説します。初期セキュア設定(mysql_secure_installation)からsystemctlによる自動起動設定まで、実際のコマンド出力を交えて一通りカバーします。
この記事のポイント
・MySQL公式リポジトリを使えば最新の8.4 LTSを確実に導入できる
・Rocky Linux 9はdnf、Ubuntu 24.04 LTSはapt、手順は違うが考え方は同じ
・mysql_secure_installationで匿名ユーザーとテストDBを必ず削除する
・systemctl enable mysqldで自動起動を有効にして設定完了
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
MySQLの公式リポジトリとは何か・なぜ使うべきか
LinuxディストリビューションはRocky Linux(RHEL系)もUbuntuも、標準リポジトリにデータベースパッケージを含んでいます。ただし、その内容が一癖あります。Rocky Linux 9のデフォルトAppStreamリポジトリにはMySQLではなくMariaDB 10.5.xが含まれており、何も考えずに`dnf install mysql-server`と打つと、MariaDBがインストールされます。Ubuntu 24.04 LTSでは`apt install mysql-server`でMySQL 8.0.xが入りますが、MySQL 8.0は2026年4月にEOL(サポート終了)を迎えており、これから新規に構築するサーバーに選ぶのは得策ではありません。
MySQL公式リポジトリを使うメリット:
・最新の安定版(MySQL 8.4 LTS)を確実に入手できる
・MySQLが直接メンテナンスするパッケージのため品質が安定している
・セキュリティパッチが即日適用される
・ディストリビューションのMariaDBとの競合を明示的に回避できる
MySQL 8.4 LTSは2024年4月にリリースされ、2032年までの長期サポートが予定されています。新規サーバーを構築するなら、迷わず8.4 LTSを選択してください。
動作環境と前提条件(Rocky Linux 9 / Ubuntu 24.04 LTS 対応)
本記事で検証した環境は以下のとおりです。| OS | バージョン | パッケージマネージャー |
|---|---|---|
| Rocky Linux | 9.5(Kernel 5.14.0-503.el9.x86_64) | dnf |
| Ubuntu | 24.04 LTS(Noble Numbat, Kernel 6.8.0-51-generic) | apt |
| MySQL | 8.4.5 LTS | MySQL公式リポジトリ |
・sudoまたはroot権限を持つユーザーでログインしていること
・インターネット接続が確立されていること(パッケージダウンロードに必要)
・Rocky Linux 9ではfirewalldが有効になっていること(デフォルト状態)
Rocky Linux 9では、AppStreamリポジトリにMariaDBが含まれており、MySQLと競合する場合があります。作業前に既存のMariaDB関連パッケージを確認しておきます。
# MariaDB関連パッケージの確認(Rocky Linux) dnf list installed | grep -i mariadb
公式リポジトリの登録手順(dnf/apt両対応)
1. Rocky Linux 9 — MySQL Yumリポジトリの登録
MySQLが提供するYumリポジトリ設定RPMパッケージをインストールします。# MySQL公式リポジトリパッケージのインストール sudo rpm -Uvh https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
Retrieving https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:mysql84-community-release-el9-1 ################################# [100%]
# GPGキーのインポート sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
# リポジトリの確認 dnf repolist | grep mysql
mysql-8.4-lts-community MySQL 8.4 LTS Community Server mysql-tools-8.4-lts-community MySQL Tools 8.4 LTS Community
2. Ubuntu 24.04 LTS — MySQL APTリポジトリの登録
Ubuntu 24.04 LTSでは、MySQL APTリポジトリ設定パッケージを使います。# wgetがない場合はインストールしておく sudo apt install -y wget # MySQLリポジトリ設定パッケージのダウンロード wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
# リポジトリ設定パッケージのインストール sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb
# リポジトリ情報の更新 sudo apt update
Get:1 http://repo.mysql.com/apt/ubuntu noble InRelease [21.9 kB] Get:2 http://repo.mysql.com/apt/ubuntu noble/mysql-8.4 amd64 Packages [10.3 kB] Get:3 http://repo.mysql.com/apt/ubuntu noble/mysql-tools-8.4 amd64 Packages [4.1 kB] ... Reading package lists... Done
MySQLのインストール(dnf/apt両対応)
1. Rocky Linux 9(dnf)でのインストール
# MySQLサーバーのインストール sudo dnf install -y mysql-community-server
Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: mysql-community-server x86_64 8.4.5-1.el9 mysql-8.4-lts 64 M Installing dependencies: mysql-community-client x86_64 8.4.5-1.el9 mysql-8.4-lts 16 M mysql-community-libs x86_64 8.4.5-1.el9 mysql-8.4-lts 1 M mysql-community-icu-data-files x86_64 8.4.5-1.el9 mysql-8.4-lts 2 M Installed: mysql-community-client-8.4.5-1.el9.x86_64 mysql-community-icu-data-files-8.4.5-1.el9.x86_64 mysql-community-libs-8.4.5-1.el9.x86_64 mysql-community-server-8.4.5-1.el9.x86_64 Complete!
2. Ubuntu 24.04 LTS(apt)でのインストール
# MySQLサーバーのインストール sudo apt install -y mysql-server
Reading package lists... Done Building dependency tree... Done The following NEW packages will be installed: mysql-client-8.4 mysql-common mysql-server mysql-server-8.4 ... Setting up mysql-server-8.4 (8.4.5-1ubuntu24.04) ... Processing triggers for systemd (255.4-1ubuntu8.5) ...
MySQLの初期セキュア設定(mysql_secure_installation)
インストール直後のMySQLは、セキュリティ的に甘い状態です。匿名ユーザーやテストデータベースが残っており、そのまま本番運用に投入するのは危険です。`mysql_secure_installation`コマンドで一括して初期設定を行います。1. Rocky Linux 9での初期rootパスワード取得
Rocky Linux 9では、MySQLサービスを初回起動すると`/var/log/mysqld.log`に一時的なrootパスワードが書き込まれます。まずサービスを起動してからパスワードを確認します。# MySQLサービスの起動 sudo systemctl start mysqld # 一時パスワードの取得 sudo grep 'temporary password' /var/log/mysqld.log
2026-06-15T03:42:17.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Axb8!kP#mL3q
2. Ubuntu 24.04 LTSでのrootログイン方法
Ubuntu 24.04 LTSでインストールされるMySQLは、デフォルトでrootユーザーがauth_socket認証(OSのsudoユーザーと連動)を使います。パスワード入力なしで`sudo mysql`でログインできます。# Ubuntu では sudo mysql で直接ログイン可能 sudo mysql
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.4.5 MySQL Community Server - GPL Copyright (c) 2000, 2026, Oracle and/or its affiliates. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
3. mysql_secure_installationの実行
sudo mysql_secure_installation
Would you like to setup VALIDATE PASSWORD component?
パスワード強度検証コンポーネントを有効にするかどうかの確認です。本番環境では`y`を推奨します。
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG
パスワード強度のレベルを選択します。本番環境では`2`(STRONG)を選択してください。
Change the password for root?
Rocky Linux 9では一時パスワードから本番用パスワードに変更するため`y`を入力します。Ubuntuではauth_socket認証を維持する場合は`n`でよいです。
Remove anonymous users?
匿名ユーザーの削除です。必ず`y`を入力してください。これをスキップすると、パスワードなしでMySQLにアクセスできるユーザーが残ります。
Disallow root login remotely?
rootアカウントのリモートログインを禁止します。本番環境では必ず`y`を入力してください。rootでのリモート接続を許可するのはセキュリティリスクになります。
Remove test database and access to it?
テスト用データベースの削除です。本番環境では不要なので`y`を入力します。
Reload privilege tables now?
権限テーブルを今すぐリロードするかの確認です。`y`を入力します。
Success. All done!
systemctlによる自動起動設定と動作確認
1. 自動起動の有効化
サーバーが再起動してもMySQLが自動起動するよう設定します。Rocky LinuxとUbuntuでサービス名が異なる点に注意してください。# Rocky Linux 9 の場合(サービス名: mysqld) sudo systemctl enable mysqld sudo systemctl start mysqld # Ubuntu 24.04 LTS の場合(サービス名: mysql) sudo systemctl enable mysql sudo systemctl start mysql
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service -> /usr/lib/systemd/system/mysqld.service.
2. サービス動作確認
# Rocky Linux の場合 sudo systemctl status mysqld # Ubuntu の場合 sudo systemctl status mysql
* mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled) Active: active (running) since Sat 2026-06-15 12:30:22 JST; 2min 14s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 1248 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 1335 (mysqld) Status: "Server is operational" Tasks: 37 (limit: 10951) Memory: 450.5M CPU: 4.318s CGroup: /system.slice/mysqld.service └─1335 /usr/sbin/mysqld Jun 15 12:30:17 server01 systemd[1]: Starting MySQL Server... Jun 15 12:30:22 server01 systemd[1]: Started MySQL Server.
3. ポート待ち受けの確認
MySQLはデフォルトでTCPポート3306で待ち受けます。`ss`コマンドで確認します。ss -tlnp | grep 3306
LISTEN 0 70 0.0.0.0:3306 0.0.0.0:* users:(("mysqld",pid=1335,fd=21))
4. MySQLへのログイン確認
# Rocky Linux の場合(パスワード入力を求められる) mysql -u root -p # Ubuntu(auth_socket使用)の場合 sudo mysql -u root
mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 8.4.5 | +-----------+ 1 row in set (0.00 sec) mysql> exit Bye
よくあるトラブルと対処(接続エラー・サービス起動失敗など)
「Failed to start mysqld.service: Unit not found」が出る
サービス名を間違えている可能性があります。Rocky Linuxのサービス名は`mysqld`、Ubuntuは`mysql`です。実際のサービス名は以下で確認できます。# インストールされているMySQLサービスの確認 systemctl list-units | grep -i mysql
mysqld.service loaded active running MySQL Server
「ERROR 2002 (HY000): Can't connect to local MySQL server through socket」
MySQLサービスが起動していない状態でmysqlコマンドを実行すると発生します。まずサービスの状態を確認します。# 起動状態の確認 sudo systemctl status mysqld # Rocky Linux sudo systemctl status mysql # Ubuntu # 起動していなければ起動する sudo systemctl start mysqld # Rocky Linux sudo systemctl start mysql # Ubuntu
# エラーログの確認 sudo journalctl -xe -u mysqld # Rocky Linux sudo journalctl -xe -u mysql # Ubuntu
「ERROR 1045 (28000): Access denied for user 'root'@'localhost'」
パスワードを間違えているか、mysql_secure_installation後に設定したパスワードを忘れた場合に発生します。Rocky Linuxでのパスワードリセット手順の概要は以下のとおりです。# MySQLを停止する sudo systemctl stop mysqld # --skip-grant-tablesで一時起動(一時的な措置・完了後は必ず通常起動に戻す) sudo mysqld_safe --skip-grant-tables & # rootでパスワードなしログイン mysql -u root # パスワードのリセット mysql> FLUSH PRIVILEGES; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード'; mysql> exit # 通常モードで再起動 sudo kill $(sudo cat /var/run/mysqld/mysqld.pid) sudo systemctl start mysqld
「GPG key retrieval failed」が出た場合(Rocky Linux)
GPGキーが正しくインポートされていない可能性があります。以下の手順で再インポートします。# GPGキーの再インポート sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 # DNFキャッシュのクリアと再生成 sudo dnf clean all sudo dnf makecache
SELinuxによるサービス起動失敗(Rocky Linux)
Rocky Linux 9ではSELinuxが有効です。MySQLのデータディレクトリをデフォルト(`/var/lib/mysql`)以外に変更した場合、SELinuxのコンテキストが合わず起動できないことがあります。# SELinuxの拒否ログ確認 sudo ausearch -m avc -ts recent | grep mysqld # データディレクトリを変更した場合のコンテキスト修正 sudo semanage fcontext -a -t mysqld_db_t "/新しいデータパス(/.*)?" sudo restorecon -Rv /新しいデータパス
まとめ
本記事で解説した手順をまとめます。| やりたいこと | Rocky Linux 9(dnf) | Ubuntu 24.04 LTS(apt) |
|---|---|---|
| リポジトリ登録 | sudo rpm -Uvh mysql84-community-release-el9-1.noarch.rpm |
sudo dpkg -i mysql-apt-config_*.deb |
| インストール | sudo dnf install -y mysql-community-server |
sudo apt install -y mysql-server |
| 初期rootPW確認 | sudo grep 'temporary password' /var/log/mysqld.log |
sudo mysql -u root(PW不要) |
| 初期セキュア設定 | sudo mysql_secure_installation |
sudo mysql_secure_installation |
| サービス起動 | sudo systemctl start mysqld |
sudo systemctl start mysql |
| 自動起動有効化 | sudo systemctl enable mysqld |
sudo systemctl enable mysql |
| 状態確認 | sudo systemctl status mysqld |
sudo systemctl status mysql |
| ポート確認 | ss -tlnp | grep 3306 |
ss -tlnp | grep 3306 |
MySQLの導入が完了したら、次はアプリケーション接続用ユーザーの作成やGRANT権限の設定、定期バックアップ(mysqldump)の仕組み作りなど、本番運用に向けた設定を進めていきましょう。
MySQLを含むLinuxサーバー構築を「実務の型」として学びませんか?
公式リポジトリの登録からmysql_secure_installationまで、手順を知っていれば再現できます。でも「なぜ匿名ユーザーを削除するのか」「本番環境でのMySQL権限設計はどうすべきか」を説明できますか?
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:mysqldumpコマンドでMySQLデータベースをバックアップする方法|フルバックアップから特定テーブル・リストアまで
- この記事の属するカテゴリ:MySQLへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます