GitLab在Debian上的数据库如何选择
小樊
32
2025-11-19 15:13:38
GitLab在Debian上的数据库选择
首选数据库与版本要求
- 在 Debian 上,GitLab 仅支持 PostgreSQL,且自 GitLab 12.1 起已移除对 MySQL/MariaDB 的支持;如使用旧版本请先迁移至 PostgreSQL。Omnibus 安装包内置 PostgreSQL,也可使用外部 PostgreSQL。建议使用的 PostgreSQL 最低版本为 11+(因 9.6/10 已在 13.0 移除),并务必在每个 GitLab 数据库加载扩展:pg_trgm 与 btree_gist。PostgreSQL 服务器建议预留 5–10 GB 存储(随用户规模增长)。
场景化选择建议
- 全新部署:直接使用内置或外部的 PostgreSQL,这是唯一受支持且功能完整的选项。
- 从旧版 GitLab 升级:若当前使用 MySQL/MariaDB,请在升级前完成迁移至 PostgreSQL,否则将面临兼容性与升级阻断风险。
- 使用 GitLab Geo:优先采用 Omnibus 管理的数据库实例;对外部数据库(如云托管 PostgreSQL)仅作“尽力兼容”,不保证可用性与支持性。
PostgreSQL部署与配置要点
- 安装与初始化(Debian):执行
sudo apt update && sudo apt install postgresql postgresql-contrib,随后使用 sudo -u postgres psql 创建数据库与用户,并为 GitLab 数据库启用扩展:
- 创建:
CREATE DATABASE gitlab; CREATE USER gitlab WITH PASSWORD 'strong_password'; GRANT ALL PRIVILEGES ON DATABASE gitlab TO gitlab;
- 扩展:
\c gitlab 后执行 CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS btree_gist;
- Omnibus 内置数据库:默认已集成,无需单独安装;如需外部数据库,在
/etc/gitlab/gitlab.rb 中设置连接参数(如 gitlab_rails['db_host']、db_port、db_user、db_password、db_name),然后执行 sudo gitlab-ctl reconfigure 使配置生效。
常见误区与提示
- 不要选择 MySQL/MariaDB:自 12.1 起不再支持,继续使用会影响升级与功能完整性。
- 不要使用不兼容的托管 PostgreSQL:部分托管服务(文档列明)与 GitLab 不兼容,应避免选用。
- 注意语言环境与索引兼容性:跨发行版迁移或升级时,glibc 语言环境变化可能导致索引损坏,需提前评估与校验。