GitLab在CentOS上的数据库选择指南
GitLab作为开源代码管理平台,其对数据库的支持经历了版本迭代调整。自GitLab 12.1版本起,官方移除了对MySQL/MariaDB的原生支持,PostgreSQL成为唯一官方推荐的数据库后端。这一调整源于PostgreSQL在功能完整性、稳定性及与GitLab的集成深度上的优势——它支持复杂查询、事务完整性、高级索引(如GIN索引)及扩展(如PostGIS),能更好满足GitLab对项目元数据、用户权限、CI/CD流水线等数据的存储需求。
尽管官方推荐PostgreSQL,但在特定场景下,用户仍可选择其他数据库,需根据自身需求权衡:
以下是在CentOS上为GitLab配置PostgreSQL数据库的具体流程:
sudo yum install -y postgresql-server postgresql-contrib
sudo postgresql-setup initdb
sudo systemctl start postgresql && sudo systemctl enable postgresql
。/etc/postgresql/[版本]/main/pg_hba.conf
文件,添加GitLab用户的访问权限(例如允许本地连接):host all all localhost md5
/etc/postgresql/[版本]/main/postgresql.conf
文件,调整关键参数以优化性能:
listen_addresses = '*'
(允许远程连接,若需);max_connections = 200
(根据并发用户数调整);shared_buffers = 4GB
(设置为系统内存的25%-40%);work_mem = 16MB
(每个查询的工作内存);maintenance_work_mem = 512MB
(大型任务的内存分配)。sudo -u postgres psql
CREATE DATABASE gitlabhq_production; -- GitLab默认数据库名
CREATE USER gitlab WITH PASSWORD 'your_secure_password'; -- 创建GitLab专用用户
ALTER ROLE gitlab SET client_encoding TO 'utf8';
ALTER ROLE gitlab SET default_transaction_isolation TO 'read committed';
ALTER ROLE gitlab SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production TO gitlab; -- 授权
\q -- 退出
```。
/etc/gitlab/gitlab.rb
,添加以下数据库连接信息:gitlab_rails['db_adapter'] = 'postgresql' -- 指定适配器
gitlab_rails['db_host'] = 'localhost' -- 数据库服务器地址
gitlab_rails['db_port'] = 5432 -- PostgreSQL默认端口
gitlab_rails['db_user'] = 'gitlab' -- 数据库用户名
gitlab_rails['db_password'] = 'your_secure_password' -- 数据库密码
gitlab_rails['db_name'] = 'gitlabhq_production' -- 数据库名
保存后重载GitLab配置并重启服务:sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart
。pg_dump
)。