配置gitlab使用外部數據庫

vim /opt/gitlab/embedded/service/gitlab-rails/.bundle/config
將BUNDLE_WITHOUT: "development:test:mysql" 修改爲
BUNDLE_WITHOUT: "development:test:postgres"

yum -y install ruby-devel
cd /opt/gitlab/embedded/bin
./gem install mysql2

1、創建數據庫
#創建數據庫
create database gitlab DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

#創建用戶並添加權限
GRANT ALL PRIVILEGES ON gitlab.*TO 'gitlab'@'%' IDENTIFIED BY 'gitlab' WITH GRANT OPTION;

MySQL8.0需要執行如下:
mysql> create user 'gitlab'@'%' IDENTIFIED BY '1qaz!QAZ';
Query OK, 0 rows affected (0.08 sec)

mysql> GRANT ALL PRIVILEGES ON gitlab.* TO 'gitlab'@'%';
Query OK, 0 rows affected (0.06 sec)

#刷新權限
flush privileges;

2、配置gitlab.rb,添加mysql
vim /etc/gitlab/gitlab.rb

#修改數據庫配置
gitlab_rails['db_adapter'] = "mysql2"
gitlab_rails['db_encoding'] = "utf8"
gitlab_rails['db_database'] = "gitlab"
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "gitlab"
gitlab_rails['db_host'] = "127.0.0.1"
gitlab_rails['db_port'] = 3306
postgresql['enable'] = false

3、配置gitlab的依賴
3.1去掉掉postgres依賴
#缺少 mysql2,用ruby的gem工具下載一個,在下載之前,得先配置下ruby的gem與bundle
#編輯config
vim /opt/gitlab/embedded/service/gitlab-rails/.bundle/config
將原來的mysql替換成postgres,我們不需要postgers的包了。
這裏寫圖片描述

3.2安裝mysql依賴
安裝依賴,需要指定版本,可以先安裝後,在執行gitlab-rake gitlab:check查看安裝的版本。

gitlab幾乎所有的命令都在此目錄下

cd /opt/gitlab/embedded/bin/

##安裝mysql
./gem install mysql2
檢查配置:根據紅色提示安裝相應的包。注意一定要指定版本,如:
/opt/gitlab/embedded/bin/gem install mysql2 -v'0.4.10'
/opt/gitlab/embedded/bin/gem install peek-mysql2 -v'1.1.0'
gitlab-rake gitlab:check
配置gitlab使用外部數據庫

這一步很坎坷,一直報錯。類似如下:
make: *** No rule to make target /include/x86_64-linux/ruby/config.h', needed byclient.o'. Stop.

解決辦法就是按照提示,創建目錄,並cp所需文件。如下:
我執行了三次,其中還有一個backward.h文件是在網上找的。

mkdir -p /opt/gitlab/embedded/lib/ruby/include/
cp /usr/include/ruby/* /opt/gitlab/embedded/lib/ruby/include/

mkdir -p /opt/gitlab/embedded/lib/ruby/include/ruby/
cp -r /opt/gitlab/embedded/lib/ruby/include/*.h /opt/gitlab/embedded/lib/ruby/include/ruby/

mkdir -p /include/x86_64-linux/ruby/
cp -r /opt/gitlab/embedded/lib/ruby/include/* /include/x86_64-linux/ruby/

#刪除mysql
./gem uninstall mysql2

#安裝指定版本
./gem install mysql2 -v "0.3.20"

#查看版本
./gem list | grep mysql

4、檢查配置
這個檢查,是爲了保證咋們的配置絕對的正確。不然直接搞,會死得很慘的。這個地方會有很多錯誤的,具體可以看我的常見問題,說不定有一樣的。

#查看配置是否ok,如果數據庫ok了 可以直接執行gitlab-rake gitlab:setup,來創建數據庫的表。
gitlab-rake gitlab:check

5、初始化gitlab
執行gitlab-rake gitlab:setup命令,來初始化gitlab.

#初始化gitlab
gitlab-rake gitlab:setup

我們執行了gitlab-rake gitlab:setup 之後,會提示以前的數據信息會丟失掉。當然我們不設定爲yes,後面咋玩啊。

成功後之後,就會創建一個root用戶

6、重啓服務
#####後面幾個gitlab-ctl 常用命令,這次配置用不到
#配置服務
gitlab-ctl reconfigure;

#重啓服務
gitlab-ctl restart;

#查看啓動情況
gitlab-ctl tail

7、查看數據庫信息
可以看到數據庫中,多出了好多張表,然後服務也正常啓動了

#可以看到好多表已經自動創建了。
show tables;

服務正常啓動

常見問題
1、倉庫存儲目錄權限
人家提供瞭解決方案了,解決辦法就是給倉庫設定gt用戶的權限 sudo chown -R git:git /var/opt/gitlab/git-data/repositories

default... no
User id for git: 995. Groupd id for git: 993
Try fixing it:
sudo chown -R git:git /var/opt/gitlab/git-data/repositories
For more information see:
doc/install/installation.md in section "GitLab Shell"
Please fix the error above and rerun the checks.

2、gitlab沒有mysql2的依賴
Specified 'mysql2' for database adapter, but the gem is not loaded. Add gem 'mysql2' to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). excluded from capture due to environment or should_capture callback
1
解決辦法,安裝依賴

#到bin目錄下,執行gem的命令
cd /opt/gitlab/embedded/bin

#安裝指定版本的mysql驅動
gem install mysql2 -v "0.3.20"

3、gitlab找不到表的問題
如果驅動安裝成功後,執行gitlab-rake gitlab:check,如果是表不存在,可以執行下面代碼,來創建表。

gitlab-rake gitlab:setup

4、gitlab-shell self-check failed
自動檢查失敗,導致這個問題的原因是沒找到自己的服務器,解決方案是在本地的hosts中指向自己的服務器。
解決方案,/etc/hosts添加 127.0.0.1 localhost 就可以了、我先測試功能

vim /etc/hosts

#添加
127.0.0.1 localhost

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章