在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數據庫。