设为首页 收藏本站
查看: 1292|回复: 0

[经验分享] 配置gitlab使用外部数据库

[复制链接]

尚未签到

发表于 2018-9-19 07:53:08 | 显示全部楼层 |阅读模式
  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'@'%'>  MySQL8.0需要执行如下:

  mysql> create user 'gitlab'@'%'>  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
DSC0000.jpg

  这一步很坎坷,一直报错。类似如下:
  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>  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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-593921-1-1.html 上篇帖子: Google Talk: Linus on Git 下篇帖子: gitlab汉化及关联LDAP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表