MySQL標(biāo)準(zhǔn)軟件基于Bitnami mysql 構(gòu)建。當(dāng)前版本未8.3.0
你可以通過(guò)輕云UC部署工具直接安裝部署,也可以手動(dòng)按如下文檔操作,該項(xiàng)目已經(jīng)全面開源,可以從如下環(huán)境獲取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform
qinghub自動(dòng)安裝部署配置庫(kù)
簡(jiǎn)介
MySQL是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),常用于Web應(yīng)用程序的后端數(shù)據(jù)存儲(chǔ)。它支持多種操作系統(tǒng)和編程語(yǔ)言,具有高性能、可靠性和可擴(kuò)展性等特點(diǎn)。
配置
環(huán)境變量
可定制的環(huán)境變量
| Name | Description | Default Value |
|---|---|---|
ALLOW_EMPTY_PASSWORD |
允許 MySQL 訪問(wèn)而無(wú)需任何密碼。 | no |
MYSQL_ROOT_USER |
MySQL 數(shù)據(jù)庫(kù) root 用戶。 | root |
MYSQL_MASTER_PORT_NUMBER |
MySQL 主節(jié)點(diǎn)的端口號(hào)。 | 3306 |
MYSQL_MASTER_ROOT_USER |
master主機(jī)的MySQL數(shù)據(jù)庫(kù)root用戶。 | root |
MYSQL_MASTER_DELAY |
MySQL 數(shù)據(jù)庫(kù)復(fù)制延遲。 | 0 |
MYSQL_REPLICATION_SLAVE_DUMP |
在主 MySQL 數(shù)據(jù)庫(kù)上進(jìn)行轉(zhuǎn)儲(chǔ)并更新從屬 MySQL 數(shù)據(jù)庫(kù) | false |
MYSQL_CLIENT_ENABLE_SSL |
是否強(qiáng)制使用 SSL 來(lái)連接 MySQL 數(shù)據(jù)庫(kù)。 | no |
MYSQL_CLIENT_EXTRA_FLAGS |
是否使用“mysql”CLI 工具強(qiáng)制進(jìn)行 SSL 連接。對(duì)于依賴 CLI 而不是 API 的應(yīng)用程序很有用。 | no |
MYSQL_STARTUP_WAIT_RETRIES |
等待數(shù)據(jù)庫(kù)運(yùn)行的重試次數(shù)。 | 300 |
MYSQL_STARTUP_WAIT_SLEEP_TIME |
等待數(shù)據(jù)庫(kù)運(yùn)行的重試之間的睡眠時(shí)間。 | 2 |
MYSQL_ENABLE_SLOW_QUERY |
是否啟用慢查詢?nèi)罩尽?/td> | 0 |
MYSQL_LONG_QUERY_TIME |
多少時(shí)間(以秒為單位)定義了慢速查詢。 | 10.0 |
只讀環(huán)境變量
| Name | Description | Value |
|---|---|---|
DB_FLAVOR |
SQL 數(shù)據(jù)庫(kù)風(fēng)格。有效值:mariadb或mysql。 | mysql |
DB_BASE_DIR |
MySQL 文件的基本路徑。 | ${BITNAMI_ROOT_DIR}/mysql |
DB_VOLUME_DIR |
持久文件的 MySQL 目錄。 | ${BITNAMI_VOLUME_DIR}/mysql |
DB_DATA_DIR |
MySQL 數(shù)據(jù)文件目錄。 | ${DB_VOLUME_DIR}/data |
DB_BIN_DIR |
可執(zhí)行二進(jìn)制文件所在的 MySQL 目錄。 | ${DB_BASE_DIR}/bin |
DB_SBIN_DIR |
服務(wù)二進(jìn)制文件所在的MySQL目錄。 | ${DB_BASE_DIR}/bin |
DB_CONF_DIR |
MySQL 配置目錄。 | ${DB_BASE_DIR}/conf |
DB_DEFAULT_CONF_DIR |
MySQL默認(rèn)配置目錄。 | ${DB_BASE_DIR}/conf.default |
DB_LOGS_DIR |
MySQL 日志目錄。 | ${DB_BASE_DIR}/logs |
DB_TMP_DIR |
MySQL 臨時(shí)文件目錄。 | ${DB_BASE_DIR}/tmp |
DB_CONF_FILE |
主要 MySQL 配置文件。 | ${DB_CONF_DIR}/my.cnf |
DB_PID_FILE |
MySQL PID 文件。 | ${DB_TMP_DIR}/mysqld.pid |
DB_SOCKET_FILE |
MySQL 服務(wù)器套接字文件。 | ${DB_TMP_DIR}/mysql.sock |
DB_DAEMON_USER |
將執(zhí)行 MySQL Server 進(jìn)程的用戶。 | mysql |
DB_DAEMON_GROUP |
將執(zhí)行 MySQL Server 進(jìn)程的組。 | mysql |
MYSQL_DEFAULT_PORT_NUMBER |
用于 MySQL 服務(wù)器服務(wù)的默認(rèn)端口號(hào)。 | 3306 |
MYSQL_DEFAULT_CHARACTER_SET |
默認(rèn) MySQL 字符集。 | utf8mb4 |
MYSQL_DEFAULT_BIND_ADDRESS |
默認(rèn) MySQL 綁定地址。 | 0.0.0.0 |
MYSQL_DISABLE_SERVICE |
是否默認(rèn)禁用MySQL服務(wù)。 | no |
初始化一個(gè)新實(shí)例
容器可以在第一次啟動(dòng)和每次啟動(dòng)時(shí)執(zhí)行自定義文件。支持?jǐn)U展名為.sh,.sql和.sql.gz的文件。
- 在/docker-entrypoint-initdb.d中的文件只會(huì)在第一個(gè)容器啟動(dòng)時(shí)執(zhí)行。
- 在/docker-entrypoint-startdb.d中的文件將在每個(gè)容器啟動(dòng)時(shí)執(zhí)行。
為了將自定義文件放入 docker 映像中,可以將它們掛載為卷。
考慮到這些腳本根據(jù)擴(kuò)展名的不同而被不同地對(duì)待。當(dāng).sh腳本在所有節(jié)點(diǎn)執(zhí)行;和.sql腳本.sql.gz僅在主節(jié)點(diǎn)中執(zhí)行。這種差異背后的原因是.sh腳本允許添加條件來(lái)確定運(yùn)行腳本的節(jié)點(diǎn)是什么,而這些條件不能使用.sql或者sql.gz文件來(lái)設(shè)置。這樣就可以根據(jù)需要覆蓋不同的用例。
注意:如果您要導(dǎo)入大型數(shù)據(jù)庫(kù),建議將它們導(dǎo)入為.sql而不是.sql.gz,因?yàn)楹笳咝枰磿r(shí)解壓縮并且不允許進(jìn)行額外的優(yōu)化來(lái)導(dǎo)入大文件。
首次運(yùn)行時(shí)設(shè)置 root 密碼
可以使用以下環(huán)境變量通過(guò)設(shè)置 root 用戶和密碼:
- MYSQL_ROOT_USER:數(shù)據(jù)庫(kù)管理員用戶。默認(rèn)為root.
- MYSQL_ROOT_PASSWORD:數(shù)據(jù)庫(kù)管理員用戶密碼。沒(méi)有默認(rèn)值。
在首次運(yùn)行時(shí)會(huì)設(shè)置以上用戶名及密碼新。
docker run --name mysql -e MYSQL_ROOT_PASSWORD=qingcloud123 registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:latest
或者通過(guò)修改docker-compose.yml文件:
services:
mysql:
...
environment:
- MYSQL_ROOT_PASSWORD=qingcloud123
...
Warning MYSQL_ROOT_USER始終是通過(guò)遠(yuǎn)程訪問(wèn)創(chuàng)建的。建議始終指定 env 變量來(lái)為用戶MYSQL_ROOT_USER設(shè)置密碼MYSQL_ROOT_PASSWORD。如果您希望允許MYSQL_ROOT_USER用戶無(wú)需密碼即可訪問(wèn)數(shù)據(jù)庫(kù),請(qǐng)?jiān)O(shè)置環(huán)境變量ALLOW_EMPTY_PASSWORD=yes。建議僅用于開發(fā)。
允許空密碼
默認(rèn)情況下,要設(shè)置所有可用的密碼。為了允許空密碼,需要設(shè)置ALLOW_EMPTY_PASSWORD=yes 環(huán)境變量。
docker run --name mysql -e ALLOW_EMPTY_PASSWORD=yes registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:latest
或者通過(guò)修改docker-compose.yml文件:
services:
mysql:
...
environment:
- ALLOW_EMPTY_PASSWORD=yes
...
設(shè)置字符集和排序規(guī)則
可以使用以下環(huán)境變量配置數(shù)據(jù)庫(kù)默認(rèn)使用的字符集和排序規(guī)則:
- MYSQL_CHARACTER_SET:使用的默認(rèn)字符集。默認(rèn):utf8
- MYSQL_COLLATE:要使用的默認(rèn)排序規(guī)則。默認(rèn):utf8_general_ci
首次運(yùn)行時(shí)創(chuàng)建數(shù)據(jù)庫(kù)
MYSQL_DATABASE通過(guò)在第一次運(yùn)行鏡像時(shí)傳遞環(huán)境變量,將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。如果您的應(yīng)用程序要求數(shù)據(jù)庫(kù)已存在,這非常有用,使您不必使用 MySQL 客戶端手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)。
docker run --name mysql \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_DATABASE=my_database \
registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:latest
或者通過(guò)修改docker-compose.yml文件:
services:
mysql:
...
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=my_database
...
首次運(yùn)行時(shí)創(chuàng)建數(shù)據(jù)庫(kù)用戶
您可以創(chuàng)建一個(gè)受限數(shù)據(jù)庫(kù)用戶,該用戶僅具有使用環(huán)境變量創(chuàng)建的數(shù)據(jù)庫(kù)的權(quán)限MYSQL_DATABASE。為此,請(qǐng)?zhí)峁㎝YSQL_USER環(huán)境變量并為提供該變量的數(shù)據(jù)庫(kù)用戶設(shè)置密碼MYSQL_PASSWORD。MySQL支持不同的身份驗(yàn)證機(jī)制,例如caching_sha2_password或mysql_native_password。要設(shè)置它,請(qǐng)使用MYSQL_AUTHENTICATION_PLUGIN變量。
docker run --name mysql \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_USER=my_user \
-e MYSQL_PASSWORD=my_password \
-e MYSQL_DATABASE=my_database \
-e MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password \
registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:latest
或者通過(guò)修改docker-compose.yml文件:
services:
mysql:
...
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MYSQL_USER=my_user
- MYSQL_PASSWORD=my_password
- MYSQL_DATABASE=my_database
...
注意:這里如果要禁用空密碼, 可以配置MYSQL_ROOT_PASSWORD 環(huán)境變量替代ALLOW_EMPTY_PASSWORD=yes
你可以通過(guò)輕云UC 部署工具直接安裝部署,也可以手動(dòng)按如下文檔操作
部署配置文件獲取地址: https://gitee.com/qingplus/qingcloud-platform