第 14 章 数据库镜像
14.1. MariaDB
14.1.1. 描述
rhscl/mariadb-105-rhel7 镜像提供 MariaDB 10.5 SQL 数据库服务器。
14.1.2. 权限
要拉取 rhscl/mariadb-105-rhel7 镜像,以 root 用户身份运行以下命令:
# podman pull registry.redhat.io/rhscl/mariadb-105-rhel7
14.1.3. 配置和使用
使用和配置与 MySQL 镜像相同。请注意,守护进程的名称为 mysqld
,所有环境变量的名称都与 MySQL 中相同。
镜像通过将 -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 |
| 一个数据包或任何生成的/中间字符串的最大值 | 200M |
| FULLTEXT 索引中包含的单词的最小长度 | 4 |
| FULLTEXT 索引中包含的单词的最大长度 | 20 |
|
如果原生 AIO 无法正常工作,控制 | 1 |
| 所有线程打开的表数 | 400 |
| 用于索引块的缓冲大小 | 32M(或者 10% 可用内存) |
| 用于排序的缓冲区的大小 | 256K |
| 用于后续扫描的缓冲大小 | 8M(或者 5% 可用内存) |
| InnoDB 缓存表和索引数据的缓冲池的大小 | 32M(或者 50% 可用内存) |
| 日志组中每个日志文件的大小 | 8M(或者 15% 可用内存) |
| InnoDB 用来写入磁盘日志文件的缓冲大小 | 8M(或者 15% 可用内存) |
| 指向其它配置文件 |
|
|
设置 binlog 格式;支持的值是 |
|
当使用 --memory
参数集运行 MariaDB 镜像时,以下参数的值将根据可用内存自动计算,除非指定了参数:
变量名称 | 默认内存百分比 |
---|---|
| 10% |
| 5% |
| 50% |
| 15% |
| 15% |
您还可以通过将 -v /host:/container
选项传递给 podman run
命令来设置以下挂载点:
卷挂载点 | 描述 |
---|---|
| MySQL 数据目录 |
将目录从主机挂载到容器时,请确保挂载的目录具有适当的权限,并且目录的所有者和组与容器中运行的用户 UID 或名称匹配。
14.1.4. 延长镜像
请参阅 如何扩展 rhscl/mariadb-101-rhel7 容器镜像,它也适用于 rhscl/mariadb-105-rhel7
。