MySQL for Developers Licenseのインストール方法(Oracle Linux8)

# MySQL for Developers Licenseとは
- Oracleが提供しているMySQL商用版(Enterprise Edition)を試用目的で検証や学習に利用できるライセンスです。
- MySQL商用版には、セキュリティや高性能バックアップツール、JavaScriptがストアドプログラムとして利用できるなど、コミュニティ版にはない機能を利用することができます。
- テクニカルサポートが必要な場合は、別途契約が必要になります
# パッケージの入手
以下のwebサイトから利用するOSに対応したファイルをダウンロードします。
https://www.oracle.com/mysql/technologies/mysql-enterprise-edition-downloads.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981366/038d05cc-7884-6fb3-445b-f55d7317ec1a.png)

※ダウンロードできるバージョンは最新のイノベーションリリースになります。
※ブラウザのBadRequest400エラーになる場合は、ブラウザのシークレット(プライベート)ウィンドウでお試しください。
※ダウンロードの際には使用許諾(Oracle Technology Network License Agreement)への同意が必要です。

ダウンロードしたファイルを解凍するとパッケージファイルが生成されます。
以下はmysql-enterprise-9.1.0_el8_x86_64_bundle.tarを解凍した際の例です。 
```
mysql-commercial-backup-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-client-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-client-plugins-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-common-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-icu-data-files-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-libs-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-libs-compat-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-server-9.1.0-1.1.el8.x86_64.rpm
mysql-commercial-test-9.1.0-1.1.el8.x86_64.rpm
mysql-router-commercial-9.1.0-1.1.el8.x86_64.rpm
mysql-shell-commercial-9.1.0-1.1.el8.x86_64.rpm
mysql-connector-python3-commercial-9.1.0-1.1.el8.x86_64.rpm
mysqlx-connector-python3-commercial-9.1.0-1.1.el8.x86_64.rpm
mysql-connector-j-commercial-9.1.0-1.1.el8.noarch.rpm
mysql-connector-odbc-commercial-9.1.0-1.1.el8.x86_64.rpm
mysql-connector-odbc-commercial-setup-9.1.0-1.1.el8.x86_64.rpm
mysql-connector-c++-commercial-9.1.0-1.1.el8.x86_64.rpm
mysql-connector-c++-commercial-compat-9.1.0-1.1.el8.x86_64.rpm
mysql-connector-c++-commercial-jdbc-9.1.0-1.1.el8.x86_64.rpm
repodata/
repodata/ec80c469818b4604b9cee3278fcad7406b8a24e1-primary.xml.gz
repodata/b11f274e43d877e3d2b7d29ccff83f29fbf80056-filelists.xml.gz
repodata/dd62390262d1cf505d5ef4e634f44430a91872f4-other.xml.gz
repodata/c1d8c25d7f28bdc0db808c695b60926d8a260fb5-primary.sqlite.bz2
repodata/f0fc8a9ce0abb4cc14d68a3a66f619e213a646a8-filelists.sqlite.bz2
repodata/381e78e6e6d4cd1911d015473713426151f468dc-other.sqlite.bz2
repodata/repomd.xml
README.txt
```
## GPGキーのインストール
インストール時にパッケージを検証するために、MySQL GPGキーをインストールします。
```
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
```

## リポジトリのインストール
ここでは、Oracle Linux8の環境にyumリポジトリを使用してインストールしてみます。
インストールするバージョンは2024年10月時点で最新の9.1.0イノベーションリリースになります。

```
sudo yum install mysql-commercial-*.rpm
```
Community版がすでにインストールされている場合は置き換えられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981366/fa8e6f57-1004-4b09-77de-6af4be26eef1.png)
(中略)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981366/5ad0c51e-ffb4-5cd2-3d9b-d9cad1be6840.png)

<!--
2. リポジトリの確認
```
yum repolist all | grep mysql
```
LTSリリースがインストールされている場合は、無効にしておきます。
プラットフォームが yum-config-manager または dnf config-manager コマンドをサポートしている場合は、以下のコマンドを実行して LTS8.4 シリーズ用のサブリポジトリを無効にします。
```
$> sudo yum-config-manager --disable mysql-8.4-lts-community
$> sudo yum-config-manager --enable  mysql80-community
```
```
$> sudo dnf config-manager --disable mysql-8.4-lts-community
$> sudo dnf config-manager --enable mysql80-community
```
config-managerコマンドを使う代わりに、enabledオプションを切り替えて/etc/yum.repos.d/mysql-community.repoファイルを手動で編集することもできます。
編集したいリポジトリのenabled オプションを編集します。サブリポジトリを無効にするにはenabled=0を、有効にするにはenabled=1を指定します。たとえば、MySQL innovation trackからインストールする場合、MySQL 8.4サブリポジトリのエントリをenabled=0にし、innovationのエントリをenabled=1にします： 
-->
## デフォルトのMySQLモジュールを無効にする
RHEL8やOracle Linux 8などのEL8ベースのシステムには、デフォルトで有効になっているMySQLモジュールが含まれています。
このモジュールを無効にしない限り、MySQLリポジトリが提供するパッケージがマスクされてしまいます。含まれるモジュールを無効にして、MySQLリポジトリパッケージを有効にするには、次のコマンドを使用します（dnfが有効なシステムの場合は、コマンド内のyumをdnfに置き換えます)
```
sudo yum module disable mysql
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981366/cf55b1bc-6986-1305-73b8-c5014f1643f8.png)

## MySQLサーバーのインストール
以下のコマンドを実行し、インストールできたら起動します。
```
sudo yum install mysql-commercial-server
```
```
sudo systemctl start mysqld
sudo systemctl status mysqld
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981366/067a55db-8f34-d63a-97a3-f750bdbef1a4.png)

## 管理者パスワードの変更
MySQLサーバーの初回起動時などデータディレクトリが空の場合、サーバーの初期化やSSL証明書の生成などとともに、管理者アカウント'root'@'localhost'と一時パスワードが作成されます。
以下のコマンドを実行して一時パスワードを確認します。
```
sudo grep 'temporary password' /var/log/mysqld.log
```
一時パスワードをALTER USER文で変更します。
変更例)
```
$> mysql -uroot -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
```
バージョンを確認すると商用版(commercial)と表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981366/9909b354-e4d2-6f30-5f9f-0d67ae9d405b.png)

## 含まれている製品
MySQL for Developers Licenseでは以下の製品を試すことができます。

- mysql-commercial-server： MySQLサーバー
非常に高速なマルチスレッド、マルチユーザ、および堅牢な SQL（構造化クエリ言語）を提供します、
本パッケージには、MySQLサーバーのバイナリおよび MySQLサーバーを実行・管理するための関連ユーティリティが含まれています。

- mysql-commercial-backup： MySQL Enterprise Backup
DBA向けの以下の機能を提供します。
    - データ圧縮技術を用いた高性能なオンラインホットバックアップ
    - ダウンタイムや障害発生時のデータ保護

- mysql-commercial-client： このパッケージには、標準の MySQL
クライアントと管理ツールが含まれます。

- mysql-connector-c++-commercial： MySQLサーバーと通信するための C++ インタフェース。Connector/C++ X DevAPI は Cアプリケーションでも使用できます。

- mysql-connector-c++-commercial-jdbc: C++用 MySQLドライバ。
JDBC4.0 APIに倣っています。MySQL Connector/C++ は、JDBCライクなMySQL APIドライバを提供します。

- mysql-connector-j-commercial： MySQL Connector/J は MySQL の公式JDBCドライバです。Java Database Connectivity (JDBC) API を実装したドライバ MySQL Connector/J を使用して、Java プログラミング言語で開発されたアプリケーションとの接続機能を提供します。

- mysql-connector-odbc-commercial：  Connector/ODBC は、Windows、Linux、Mac OS X、および Unix プラットフォーム用の標準データベースドライバです。ANSI と Unicode の 2 種類があります。