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
| OS | パッケージ形式 | インストールコマンド | 備考 |
|---|---|---|---|
| Debian Linux | .deb | dpkg | Debian専用 |
| Ubuntu Linux | .deb | dpkg または apt | Ubuntu専用(Debianベースだが最適化されている) |
| Red Hat Enterprise Linux / Oracle Linux | .rpm | rpm または yum/dnf | RHEL、CentOS、Rocky Linux、Oracle Linux向け |
| Fedora | .rpm | dnf | Fedora専用(RHELの開発版的な位置づけ) |
| Linux – Generic | tarball | 手動配置 | どの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-serveryum 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は、データベースのメタデータ(データベースに関する情報)を格納しています。