SQL 数据库
# 需求
CKEditor 协作服务器使用的 SQL 数据库需要满足数据库需求文章中列出的软件和硬件要求。
# 支持的 SQL 数据库
目前支持以下数据库
- MySQL 8.0 版本(推荐)或 5.7 版本(最低支持版本)
- PostgreSQL 14 版本(推荐)或 12 版本(最低支持版本)
# 驱动程序选择
默认情况下,使用 MySQL 数据库驱动程序。
可以使用DATABASE_DRIVER
环境变量更改它。
目前支持两种选择
mysql
- MySQL(默认)postgres
- PostgreSQL
# 连接和基本凭据
要连接到数据库,至少需要设置DATABASE_HOST
。
强烈建议更改DATABASE_USER
和DATABASE_PASSWORD
变量的默认值。
DATABASE_HOST - required
DATABASE_PORT - optional (default: 3306)
DATABASE_USER - optional (default: "root")
DATABASE_PASSWORD - optional (default: "password")
DATABASE_DATABASE - optional (default: "cs-on-premises")
DATABASE_SCHEMA - optional (default: "cs-on-premises", used for Postgres driver)
# TLS 连接和证书
- 如果您的数据库服务器配置为需要 SSL 连接,您可以使用
DATABASE_SSL_CA
、DATABASE_SSL_KEY
和DATABASE_SSL_CERT
将证书传递给数据库驱动程序。 - 如果您的数据库服务器配置为需要 SSL 连接并且数据库服务器的证书由受信任的第三方签署,您可以将
DATABASE_SSL_ENABLE
设置为true
,而不是传递证书。
DATABASE_SSL_ENABLE - optional (default: false)
DATABASE_SSL_CA - optional
DATABASE_SSL_KEY - optional
DATABASE_SSL_CERT - optional
您可以通过两种方式提供证书
# 将证书作为文件传递
要将证书作为文件传递,您需要提供它在应用程序容器内的路径。
DATABASE_SSL_CA: /path/to/certificate/server-certificate.pem
这可能需要配置卷,以使证书在提供给DATABASE_SSL_CA
变量的路径下可用。
# 将证书作为文本传递
提供所需证书的另一种方法是将它们作为文本提供。
DATABASE_SSL_CA: "-----BEGIN CERTIFICATE-----\nMIIEBjCCAu6gAwIBAgIJAMc0ZzaSUK51MA0GCSqGSIb3DQEBCwUAMIGPMQswCQYD\nVQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n............\nzPW4CXXvhLmE02TA9/ZeCw3KkHIwicNuEfa=\n-----END CERTIFICATE-----"
DATABASE_SSL_CERT: |
-----BEGIN CERTIFICATE-----
MIIEBjCCAu6gAwIBAgIJAMc0ZzaSUK51MA0GCSqGSIb3DQEBCwUAMIGPMQswCQYD
...rest_of_certificate_content
zPW4CXXvhLmE02TA9/ZeCw3KkHIwicNuEfa=
-----END CERTIFICATE-----
DATABASE_SSL_KEY: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVCakNDQXU2Z0F3SUJBZ0lKQU1jMFoKelBXNENYWHZoTG1FMDJUQTkvWmVDdzNLa0hJd2ljTnVFZmE9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
DATABASE_SSL_CERT
可以以三种格式提供
- 作为单行,其中换行符应由换行符(\n)表示。
- 使用字面块标量字符(|)以原始证书格式。
- 作为 base64 编码的字符串。它可以解决与云托管平台的换行符编码相关的問題。
# 根证书轮换
各种云提供商(例如 Azure、AWS)定期轮换其根证书,这可能需要系统管理员手动更新证书以保持应用程序正常运行。
# MySQL 高可用性
为了确保 MySQL 的高可用性,我们建议使用带有单个活动主服务器的 MySQL 主从复制。您可以在此处找到有关 MySQL 复制的更多信息。
我们建议使用一个主服务器,因为应用程序中的数据会快速修改,而且节点之间的数据经常由于复制滞后而不同步。
如果发生故障,应用程序不会自动在节点之间切换,因此值得研究负载均衡器,它将自动打开节点之间的连接。