14.2. MySQL
14.2.1. 詳細
rhscl/mysql-80-rhel7 イメージは、MySQL 8.0 SQL データベースサーバーを提供します。
14.2.2. アクセスと使用方法
rhscl/mysql-80-rhel7 イメージをプルするには、root で以下のコマンドを実行します。
# podman pull registry.redhat.io/rhscl/mysql-80-rhel7
必須の環境変数のみを設定し、データベースをホストディレクトリーに保存しないようにするには、以下のコマンドを実行します。
# podman run -d --name mysql_database -e MYSQL_USER=<user> -e MYSQL_PASSWORD=<pass> \ -e MYSQL_DATABASE=<db> -p 3306:3306 rhscl/mysql-80-rhel7
これにより、データベース db を使用する MySQL を実行する mysql_database
という名前のコンテナーと、認証情報 user:pass
を持つユーザーが作成されます。ポート 3306
が公開され、ホストにマッピングされます。コンテナーの実行後もデータベースを永続化する必要がある場合には、-v /host/db/path:/var/lib/mysql/data
引数も追加します。/host/db/path
ディレクトリーは MySQL データディレクトリーになります。
データベースディレクトリーが初期化されていない場合、エントリーポイントスクリプトは最初に mysql_install_db
を実行し、必要なデータベースユーザーおよびパスワードを設定します。データベースを初期化するか、すでに存在する場合は mysqld
が実行され、PID 1
として実行されます。podman stop mysql_database
コマンドを実行して、接続解除したコンテナーを停止できます。
14.2.3. 設定
イメージは、-e VAR=VALUE
を podman run
コマンドに渡して初期化中に設定できる以下の環境変数を認識します。
変数名 | 説明 |
---|---|
| 作成される MySQL アカウントのユーザー名 |
| ユーザーアカウントのパスワード |
| データベース名 |
| root ユーザーのパスワード (任意) |
root ユーザーはデフォルトでパスワードを設定しておらず、ローカル接続のみを許可します。このオプションを設定するには、コンテナーの初期化時に MYSQL_ROOT_PASSWORD
環境変数を設定します。これにより、root アカウントにリモートでログインできるようになります。ローカル接続にはパスワードは必要ありません。リモートの root アクセスを無効にするには、MYSQL_ROOT_PASSWORD
の設定を解除して、コンテナーを再起動するだけです。
パスワードはイメージ設定の一部であるため、権限のないユーザー (MYSQL_USER
) のパスワードを変更するためにサポートされる唯一の方法は、root ユーザーは環境変数 MYSQL_PASSWORD
および MYSQL_ROOT_PASSWORD
をそれぞれ変更する方法のみです。SQL ステートメントまたは他の方法でデータベースパスワードを変更すると、変数に格納された値と実際のパスワードが一致しなくなります。データベースコンテナーが起動するたびに、パスワードは環境変数に保存されている値にリセットされます。
以下の環境変数は MySQL 設定ファイルに影響しますが、すべて任意になります。
変数名 | 説明 | デフォルト |
---|---|---|
| テーブル名の保存方法と比較方法を設定します。 |
|
| 同時クライアント接続の最大許容数 | 151 |
| 1 つのパケットまたは生成/中間文字列の最大サイズ。 | 200M |
| FULLTEXT インデックスに含まれる単語の最小長 | 4 |
| FULLTEXT インデックスに含まれる単語の最大長 | 20 |
|
ネイティブ AIO が破損した場合に | 1 |
| すべてのスレッドのオープンテーブルの数 | 400 |
| インデックスブロックに使用されるバッファーのサイズ | 32m (または利用可能なメモリーの 10%) |
| ソートに使用されるバッファーサイズ | 256K |
| 連続スキャンに使用されるバッファーのサイズ | 8M (または利用可能なメモリーの 5%) |
| InnoDB がテーブルおよびインデックスデータをキャッシュするバッファープールのサイズ | 32m (または利用可能なメモリーの 50%) |
| ロググループ内の各ログファイルのサイズ | 8M (または使用可能なメモリーの 15%) |
| InnoDB がディスクのログファイルへの書き込みに使用するバッファーのサイズ | 8M (または使用可能なメモリーの 15%) |
| 代替の設定ファイルを参照します。 |
|
|
set は、binlog 形式を設定します。サポートされる値は |
|
|
クエリーロギングを有効にするには、この変数を |
|
MySQL イメージが --memory
パラメーターセットを使用して実行されると、以下のパラメーターが明示的に指定されていない限り、そのパラメーターの値は利用可能なメモリーに基づいて自動的に算出されます。
変数名 | デフォルトのメモリーパーセンテージ |
---|---|
| 10% |
| 5% |
| 50% |
| 15% |
| 15% |
-v /host:/container
オプションを podman run
コマンドに渡すと、以下のマウントポイントを設定することもできます。
ボリュームマウントポイント | 説明 |
---|---|
| MySQL データディレクトリー |
ホストからコンテナーにディレクトリーをマウントする場合は、マウントされたディレクトリーに適切なパーミッションがあり、ディレクトリーの所有者とグループが、コンテナー内で実行中のユーザー UID または名前と一致していることを確認します。