无法使用 gitlab-ci.yml 连接到 MySql

Oma*_*oto 5 mysql git continuous-integration ruby-on-rails gitlab

我正在尝试为我的 Rails 项目创建 gitlab-ci 文件。我的 .gitlab-ci.yml 的一部分:

image: ruby:2.3.4

variables:
  RAILS_ENV: test

services:
  - mysql:5.7


before_script:
  - apt-get update -qq && apt-get install -yqq nodejs libmysqlclient-dev
  - ruby -v
  - which ruby
  - gem install bundler --no-ri --no-rdoc
  - bundle install --jobs $(nproc) "${FLAGS[@]}"
  - cp config/database.gitlab_ci.yml config/database.yml
  - bundle exec rake db:create db:schema:load
  - bundle exec rake db:migrate --quiet
Run Code Online (Sandbox Code Playgroud)

我一直无法让它连接到我的 MySql 数据库。不管我怎么尝试。

这是我的 database.gitlab_ci.ym 的一部分:

test: &test
    adapter: mysql2
    database: my_db
    encoding: utf8
    username: my_user
    password: 1234
    host: localhost
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误:

  #<Mysql2::Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)>
  Couldn't create database for {"adapter"=>"mysql2", "database"=>"my_db", "encoding"=>"utf8", "username"=>"my_db", "password"=>1234, "host"=>"localhost"}, {:charset=>"utf8"}
  (If you set the charset manually, make sure you have a matching collation)
  rake aborted!
  Mysql2::Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Run Code Online (Sandbox Code Playgroud)

如何解决?

Joh*_*ker 0

你的问题似乎与此类似。那里提到的解决方法是您需要通过 TCP 连接,而不是套接字。

另外我建议你检查 gitlab与 MySQL 服务相关的文档。