MySQLのRPM系パッケージを使用したインストール

目次

mysqlのインストールについて – 2

オープンソース版と商用版の違い

MySQL Community Edition(オープンソース版)

  • 無料
  • GPLライセンス
  • 基本的な機能は全て使える
  • コミュニティサポートのみ

MySQL Enterprise Edition(商用版)

  • 有料(サブスクリプション)
  • Oracle公式サポート付き
  • 追加ツールやプラグイン(監視、バックアップ、セキュリティツールなど)が含まれる

インストール手順の違いはなく、基本的には同じですが、入手先が異なります。

オープンソース版

<em># 公式サイトから無料でダウンロード</em>
<em># またはパッケージマネージャーで</em>
sudo apt install mysql-server  <em># Ubuntu/Debian</em>
sudo yum install mysql-server  <em># CentOS/RHEL</em>

商用版

  • Oracle公式サイトでライセンス購入
  • ダウンロードにはOracleアカウントとライセンスが必要
  • インストール後の設定や構成は基本的に同じ

MySQLのバージョン体系

MySQLは3つの数字でバージョンを表します。

形式: メジャー.マイナー.パッチ(例: 8.0.35)

  • メジャー: 大きな変更(互換性が失われることも)
  • マイナー: 新機能追加
  • パッチ: バグ修正

バッチについてはバグの修正なので、新しいものを選択すべきです。詳しくはリリースノートを見て確認しましょう

公式パッケージ、インストーラー

https://dev.mysql.com/downloads/mysql

MySQLのインストール元 MySQL 2つの方法 公式サイト dev.mysql.com/downloads インストーラーをダウンロード パッケージマネージャー apt / yum / brew コマンド一発で完了 使い分け Windows → 公式サイト Mac → Homebrew Linux → apt/yum
OSパッケージ形式インストールコマンド備考
Debian Linux.debdpkgDebian専用
Ubuntu Linux.debdpkg または aptUbuntu専用(Debianベースだが最適化されている)
Red Hat Enterprise Linux / Oracle Linux.rpmrpm または yum/dnfRHEL、CentOS、Rocky Linux、Oracle Linux向け
Fedora.rpmdnfFedora専用(RHELの開発版的な位置づけ)
Linux – Generictarball手動配置どのLinuxディストリビューションでも使える。パッケージマネージャー不使用
Source Codeソースコードmake/cmake等自分でコンパイル。最もカスタマイズ可能だが手間がかかる

yumでのインストール手順(マイナーバージョンを指定)

条件

  • MIRACLE LINUX 8
  • Apache 2.4.xx
  • PHP 7.2.xx
  • MySQL 8.4.xx

開発環境を起動して、CentOSではデフォルトでRDBMSがMariaDBとなっている場合あるため確認

rpm -qa | grep maria

存在する場合は削除

yum remove mariadb-libs

DBデータを削除する場合

rm -rf /var/lib/mysql

すでにMySQLをインストール済みで、バージョンアップする場合は古いパッケージを削除
(削除しなくてもそのまま進めることは可能だがtarファイルからインストールする場合既存のパッケージと競合チェックが入る)https://dev.mysql.com/doc/refman/8.0/en/updating-yum-repo.html

sudo yum remove mysql-community-common mysql-community-client-plugin mysql-community-libs mysql-community-devel mysql-community-client mysql-community-icu-data-files mysql-community-server
パターン1 rpmファイルのリンクを使用する場合

こちらの方法は自動的に依存関係を解決し、最新版が自動でインストールされます

rpmファイルのリンクを取得
https://dev.mysql.com/downloads/repo/yum

取得したリンクでyumリポジトリをダウンロード

yum install https://dev.mysql.com/get/mysql84-community-release-el8-2.noarch.rpm

GPG鍵でエラーになったらhttps://repo.mysql.com/より用意して

リポジトリが追加されたか確認

yum repolist enabled | grep "mysql*"

MySQLリポジトリ追加
リポジトリ設定ファイルをインストール 実体/etc/yum.repos.d/に設定ファイルが配置される)

sudo yum install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

インストール
MySQLサーバー本体をインストール 実体/usr/bin/mysqldなどの実行ファイルが配置される)

sudo yum install mysql-server

yum installコマンドは:

  • システム全体にパッケージをインストールするコマンド
  • URLからリポジトリ設定ファイルをダウンロードして、システムの/etc/yum.repos.d/に配置する

MySQL Yum リポジトリを使用して Linux に MySQL をインストールする
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

パターン2 過去のアーカイブのtarファイルから手動インストール

特定のマイナーバージョンを指定したい場合の手順(依存関係を自分で確認・解決する必要がある)

https://downloads.mysql.com/archives/community

tarファイルをダウンロードしてwgetインストールする(なければyum install wget)

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.4.xxxxxx.el8.x86_64.rpm-bundle.tar
tar -xvf mysql-8.4.xxxxxx.el8.x86_64.rpm-bundle.tar

ファイルの確認ls -la

依存関係の確認

yum deplist mysql-community-server-xxxxxx | grep "mysql*"

依存順にインストール

yum localinstall mysql-community-xxxxxx.rpm

内容の確認rpm -qa | grep -i mysql

バージョンの確認

systemctl restart mysqld
mysql --version
注意

MySQL 8.0は最低1GB RAM必要(512MBでは起動時にOOM Killerで強制終了される)

CentOS Stream 9で8.0系から8.4.6にバージョンアップのサンプルコード

$ cat /etc/redhat-release 
CentOS Stream release 9

$ rpm --version
RPM version 4.16.1.3
$ rpm -qa | grep maria
$ rpm -qa | grep mysql

$ yum repolist enabled
repo id                            repo name
appstream                          CentOS Stream 9 - AppStream
baseos                             CentOS Stream 9 - BaseOS
extras-common                      CentOS Stream 9 - Extras packages

$ ls /etc/yum.repos.d/
centos-addons.repo  centos.repo

$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
Last metadata expiration check: 4:04:38 ago on Sun 21 Dec 2025 01:16:21 AM UTC.
mysql80-community-release-el9-1.noarch.rpm                41 kB/s |  10 kB     00:00    
Dependencies resolved.
=========================================================================================
 Package                          Architecture  Version        Repository           Size
=========================================================================================
Installing:
 mysql80-community-release        noarch        el9-1          @commandline         10 k

Transaction Summary
=========================================================================================
Install  1 Package

Total size: 10 k
Installed size: 5.7 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                 1/1 
  Installing       : mysql80-community-release-el9-1.noarch                          1/1 
  Verifying        : mysql80-community-release-el9-1.noarch                          1/1 

Installed:
  mysql80-community-release-el9-1.noarch                                                 

Complete!

$ yum repolist enabled
repo id                                  repo name
appstream                                CentOS Stream 9 - AppStream
baseos                                   CentOS Stream 9 - BaseOS
extras-common                            CentOS Stream 9 - Extras packages
mysql-connectors-community               MySQL Connectors Community
mysql-tools-community                    MySQL Tools Community
mysql80-community                        MySQL 8.0 Community Server

$ ls /etc/yum.repos.d/
centos-addons.repo  mysql-community-debuginfo.repo  mysql-community-source.repo
centos.repo         mysql-community.repo

$ sudo yum install mysql-server
Complete!

$ ls /usr/bin/ | grep mysql
mysql
mysqladmin
mysqlbinlog
mysqlcheck
mysql_config_editor
mysqld_pre_systemd
mysqldump
mysqldumpslow
mysqlimport
mysql_migrate_keyring
mysqlpump
mysql_secure_installation
mysqlshow
mysqlslap
mysql_ssl_rsa_setup
mysql_tzinfo_to_sql
mysql_upgrade


$ sudo systemctl start mysqld
$ sudo systemctl status mysqld
● mysqld.service - MySQL Server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
     Active: active (running) since Sun 2025-12-21 05:59:34 UTC; 25s ago
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
    Process: 14427 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCE>
   Main PID: 14494 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 4326)
     Memory: 386.2M
        CPU: 3.531s
     CGroup: /system.slice/mysqld.service
             └─14494 /usr/sbin/mysqld

$ mysql --version
mysql  Ver 8.0.44 for Linux on x86_64 (MySQL Community Server - GPL)
$ sudo systemctl stop mysqld

$ ls /usr/sbin/mysqld 
/usr/sbin/mysqld

$ ls /usr/lib/systemd/system/ | grep mysql
mysqld.service
mysqld@.service

$ sudo yum remove mysql-community-common mysql-community-client-plugin mysql-community-libs mysql-community-devel mysql-community-client mysql-community-icu-data-files mysql-community-server

Complete!
$ ls /usr/sbin/mysqld 
ls: cannot access '/usr/sbin/mysqld': No such file or directory

$ ls /usr/lib/systemd/system/ | grep mysql

$ which wget
/usr/bin/which: no wget in (/home/ec2-user/.local/bin:/home/ec2-user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
$ sudo yum install wget
Complete!

$ pwd
/home/ec2-user
$ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.4.6-1.el9.x86_64.rpm-bundle.tar
2025-12-21 06:22:49 (157 MB/s) - ‘mysql-8.4.6-1.el9.x86_64.rpm-bundle.tar’ saved [951019520/951019520]

$ ls
mysql-8.4.6-1.el9.x86_64.rpm-bundle.tar
$ tar -xvf mysql-8.4.6-1.el9.x86_64.rpm-bundle.tar
mysql-community-client-8.4.6-1.el9.x86_64.rpm
mysql-community-client-debuginfo-8.4.6-1.el9.x86_64.rpm
mysql-community-client-plugins-8.4.6-1.el9.x86_64.rpm
mysql-community-client-plugins-debuginfo-8.4.6-1.el9.x86_64.rpm
mysql-community-common-8.4.6-1.el9.x86_64.rpm
mysql-community-debuginfo-8.4.6-1.el9.x86_64.rpm
mysql-community-debugsource-8.4.6-1.el9.x86_64.rpm
mysql-community-devel-8.4.6-1.el9.x86_64.rpm
mysql-community-icu-data-files-8.4.6-1.el9.x86_64.rpm
mysql-community-libs-8.4.6-1.el9.x86_64.rpm
mysql-community-libs-compat-8.4.6-1.el9.x86_64.rpm
mysql-community-libs-compat-debuginfo-8.4.6-1.el9.x86_64.rpm
mysql-community-libs-debuginfo-8.4.6-1.el9.x86_64.rpm
mysql-community-server-8.4.6-1.el9.x86_64.rpm
mysql-community-server-debug-8.4.6-1.el9.x86_64.rpm
mysql-community-server-debug-debuginfo-8.4.6-1.el9.x86_64.rpm
mysql-community-server-debuginfo-8.4.6-1.el9.x86_64.rpm
mysql-community-test-8.4.6-1.el9.x86_64.rpm
mysql-community-test-debuginfo-8.4.6-1.el9.x86_64.rpm

$ sudo yum localinstall -y mysql-community-common-8.4.6-1.el9.x86_64.rpm mysql-community-client-plugins-8.4.6-1.el9.x86_64.rpm mysql-community-libs-8.4.6-1.el9.x86_64.rpm mysql-community-client-8.4.6-1.el9.x86_64.rpm mysql-community-icu-data-files-8.4.6-1.el9.x86_64.rpm mysql-community-server-8.4.6-1.el9.x86_64.rpm --nogpgcheck

$ sudo systemctl start mysqld
$ sudo systemctl status mysqld
● mysqld.service - MySQL Server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
     Active: active (running) since Sun 2025-12-21 06:29:59 UTC; 2min 3s ago
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
    Process: 16156 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCE>
   Main PID: 16179 (mysqld)
     Status: "Server is operational"
      Tasks: 34 (limit: 4326)
     Memory: 509.1M
        CPU: 6.034s
     CGroup: /system.slice/mysqld.service
             └─16179 /usr/sbin/mysqld

$ mysql --version
mysql  Ver 8.4.6 for Linux on x86_64 (MySQL Community Server - GPL)

$ sudo grep 'temporary password' /var/log/mysqld.log 
$ mysql -uroot -p
Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.4.6
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user, host, plugin from mysql.user where user = 'root'\G
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> alter user 'root'@'localhost' identified by 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql> alter user 'root'@'localhost' identified by 'P@ssword123';
Query OK, 0 rows affected (0.02 sec)

mysql> show variables like 'default_authentication_plugin';
Empty set (0.02 sec)

mysql> select user, host, plugin from mysql.user where user = 'root'\G
*************************** 1. row ***************************
  user: root
  host: localhost
plugin: caching_sha2_password
1 row in set (0.00 sec)

mysql>

mysqlコマンドラインクライアント

ターミナルやコマンドプロンプトなどのテキストベースの画面から、MySQLサーバーに対してSQL文を実行し、管理操作を行うための対話型ツールです。

mysqlをインストールした際、通常一緒にインストールされます

MySQLの状態を確認する – 7

mysqlコマンドラインクライアントに接続して、まず実行したいのが「STATUS」コマンド

動作中のサーバー情報や、基本的な接続情報の確認が可能です

information_schemaとは

information_schemaは、データベースのメタデータ(データベースに関する情報)を格納しています。

目次