gpt4 book ai didi

mysql - 无法通过套接字 '/var/run/mysqld/mysqld.sock Circle Ci/Rails/Mysql 连接到本地 MySQL 服务器

转载 作者:行者123 更新时间:2023-11-29 15:26:10 25 4
gpt4 key购买 nike

我正在尝试为我公司的应用程序创建一个circleci 版本。我现在只想建立一个 Rails 项目并使用 MySQL 数据库运行存储库中的测试。现在,当我的 circeci 尝试构建时,我遇到了以下错误。

#<Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
rake aborted!
failed to execute:
mysqlPlease check the output above for any errors and make sure that `mysql` is installed in your PATH and has proper permissions.

我关注了medium artcles、circle ci 文档和youtube 视频的组合,但我似乎无法使这个配置工作。我花了很多时间试图找出问题所在,并且确实需要一些资深的 circe ci 用户来提供帮助。这是我的 .circleci/config.yml 的最新版本:

version: 2
jobs:
build:
working_directory: ~/app
docker:
- image: circleci/ruby:2.6.2
environment:
RAILS_ENV: test
DB_HOST: 127.0.0.1
- image: circleci/mysql:5.7.28
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: app_test
MYSQL_USER: root
steps:
- checkout

# Restore bundle cache
- restore_cache:
keys:
- app-rails-{{ checksum "Gemfile.lock" }}
- app-rails-

- run:
name: Get the correct bundler
command: |
sudo apt-get install unixodbc-dev
sudo apt-get -y install mysql-server
sudo gem uninstall bundler
sudo rm /usr/local/bin/bundle
sudo rm /usr/local/bin/bundler
sudo gem install bundler -v 1.17.3
mv config/local_env.ci.yml config/local_env.yml
mv config/database.ci.yml config/database.yml

# Bundle install dependencies
- run:
name: Install dependencies
command: bundle install

# Store bundle cache
- save_cache:
key: app-rails-{{ checksum "Gemfile.lock" }}
paths:
- vendor/bundle

- run:
name: Database Setup
command: |
bundle exec rake db:create
bundle exec rake db:structure:load
bundle exec rake db:migrate

- run:
name: Run Minitest
command: rake test

它不应该是一个复杂的构建。我想要的只是构建我的应用程序和rake 测试。对于那些已经配置了rails和mysql的人来说,我的配置有什么问题吗?问题是我在查看有关环境变量的其他示例时感到困惑。例如,我见过 DB_HOST: localhost MYSQL_HOST: localhost 等,然后我在 ruby​​ 镜像或 mysql 镜像中看到这些变量。当我阅读 Circleci 文档中的一种方法时,我看到另一个示例,该示例未使用文档中的配置,但声称它有效。此时我的头在旋转。

显然我的构建不起作用,但据我所知,我认为它应该是正确的。这就是我的 database.yml 文件中的内容。它只包含这个。

test: &TEST
adapter: mysql2
encoding: utf8
pool: 5
database: app_test
username: test
password:

有人可以帮助我并指导我哪里出了问题吗?非常感谢您的帮助。谢谢。

最佳答案

这是我的解决方案以及其他遇到 Rails/Mysql 问题的人的答案。

https://medium.com/@marjanovicnenad/build-test-and-deploy-rails-application-with-circleci-and-heroku-f703efa97537

关于mysql - 无法通过套接字 '/var/run/mysqld/mysqld.sock Circle Ci/Rails/Mysql 连接到本地 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59076974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com