Linuxサーバーに自前でMySQLを導入する手順|公式リポジトリの登録から初期セキュア設定・自動起動まで

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)LinuxtipsMySQL > Linuxサーバーに自前でMySQLを導入する手順|公式リポジトリの登録から初期セキュア設定・自動起動まで
「MySQLをLinuxサーバーに自前で入れたいが、どのリポジトリを使えばよいか分からない」「aptやdnfでインストールしたら古いバージョンが入ってしまった」

こういった経験は珍しくありません。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で自動起動を有効にして設定完了


Linuxサーバーに自前でMySQLを導入する手順|公式リポジトリの登録から初期セキュア設定・自動起動まで

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

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

MariaDBがインストールされている場合は、事前に削除するか、MySQLリポジトリの優先度を設定して競合を回避してください。

公式リポジトリの登録手順(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キーをインポートします。これを省略すると、パッケージインストール時に署名検証エラーが発生します。

# 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

「mysql-8.4-lts-community」が表示されれば登録完了です。rpmコマンドの詳細はrpm コマンドの使い方も参照してください。

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

実行後、インタラクティブなメニューが表示されます。「MySQL Server & Cluster」の選択肢で「mysql-8.4」を選び、「OK」を選択して終了します。

# リポジトリ情報の更新 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-8.4」のパッケージ情報が取得できれば登録完了です。

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) ...

インストール中にrootパスワードを設定するダイアログが表示される場合があります。表示された場合は強度の高いパスワードを設定してください。後で`mysql_secure_installation`でも変更できます。

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

末尾の文字列(この例では`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!

「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

実行結果(Rocky Linux の場合):

Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service -> /usr/lib/systemd/system/mysqld.service.

このシンボリックリンクが作成されることで、次回以降のサーバー起動時にMySQLが自動的に起動します。

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.

「Status: "Server is operational"」と「Active: active (running)」が表示されれば正常に起動しています。systemdのサービス管理や起動時間計測についてはsystemd-analyze で起動時間計測も参照してください。

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))

`0.0.0.0:3306`でLISTEN状態になっていれば問題ありません。ssコマンドをはじめとしたポート確認コマンドの詳細はLinux ポート確認の全コマンドも参照してください。

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

「8.4.5」と表示されれば、MySQL 8.4 LTSが正常に動作しています。

よくあるトラブルと対処(接続エラー・サービス起動失敗など)

「Failed to start mysqld.service: Unit not found」が出る

サービス名を間違えている可能性があります。Rocky Linuxのサービス名は`mysqld`、Ubuntuは`mysql`です。実際のサービス名は以下で確認できます。

# インストールされているMySQLサービスの確認 systemctl list-units | grep -i mysql

実行結果(Rocky Linuxの場合):

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

起動に失敗する場合はjournalctlでエラーログを確認します。

# エラーログの確認 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 /新しいデータパス

デフォルトパス(`/var/lib/mysql`)を変更していなければ、SELinuxが原因でMySQLが起動しないケースは基本的に発生しません。

まとめ

本記事で解説した手順をまとめます。

やりたいこと 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のインストール自体は、公式リポジトリを使えば30分以内に完了します。ただし、`mysql_secure_installation`をスキップして匿名ユーザーやテストDBをそのままにしておくのは、本番環境では絶対に避けてください。自動起動(`systemctl enable`)の設定もサーバー再起動後の稼働維持に欠かせません。

MySQLの導入が完了したら、次はアプリケーション接続用ユーザーの作成やGRANT権限の設定、定期バックアップ(mysqldump)の仕組み作りなど、本番運用に向けた設定を進めていきましょう。

MySQLを含むLinuxサーバー構築を「実務の型」として学びませんか?

公式リポジトリの登録からmysql_secure_installationまで、手順を知っていれば再現できます。でも「なぜ匿名ユーザーを削除するのか」「本番環境でのMySQL権限設計はどうすべきか」を説明できますか?
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。