在Ubuntu上安装和配置GitLab时,选择合适的数据库是一个重要的步骤。GitLab默认使用PostgreSQL作为其数据库,并且自GitLab 12.1版本起,不再支持MySQL。以下是在Ubuntu上为GitLab选择PostgreSQL数据库的详细步骤:
首先,确保你的系统已经更新到最新版本:
sudo apt update
sudo apt upgrade -y
然后,安装PostgreSQL及其相关组件:
sudo apt install -y postgresql postgresql-contrib
启动PostgreSQL服务并创建必要的数据库和用户:
sudo -u postgres psql
在PostgreSQL提示符下,执行以下命令:
CREATE DATABASE gitlabhq_production;
CREATE USER gitlab WITH PASSWORD 'gitlab';
GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production TO gitlab;
\q
编辑PostgreSQL的配置文件 /etc/postgresql/13/main/pg_hba.conf
(版本号可能会有所不同),添加GitLab使用的用户和权限:
host all all 192.168.1.0/24 md5
然后,编辑 /etc/postgresql/13/main/postgresql.conf
文件,调整以下参数:
listen_addresses = '*'
max_connections = 200 # 根据并发用户数调整
shared_buffers = 4GB # 设置为内存的25%-40%
work_mem = 16MB # 每个查询的工作内存
maintenance_work_mem = 512MB # 大型任务的内存分配
编辑GitLab的主配置文件 /etc/gitlab/gitlab.rb
,设置数据库连接信息:
gitlab_rails['db_host'] = "localhost"
gitlab_rails['db_port'] = 5432
gitlab_rails['db_user'] = "gitlab"
gitlab_rails['db_password'] = "gitlab"
gitlab_rails['db_name'] = "gitlabhq_production"
保存配置文件后,重新配置GitLab以应用更改:
sudo gitlab-ctl reconfigure
最后,重启GitLab服务以使更改生效:
sudo gitlab-ctl restart
完成上述步骤后,可以使用以下命令测试GitLab是否能够成功连接到PostgreSQL数据库:
sudo gitlab-rake gitlab:check SANITIZE=true --trace
如果一切正常,将看到类似以下的输出:
Database config exists? ... yes
Database is SQLite ... no
这表明GitLab已成功连接到PostgreSQL数据库。