【问题标题】:Mina Deploy fails connecting to MySQL during rake db:migrateMina Deploy 在 rake db:migrate 期间无法连接到 MySQL
【发布时间】:2015-09-18 18:51:02
【问题描述】:

我是使用 Mina 进行 Rails 4 应用程序部署的新手。这是一个使用 MySQL 的非常简单的应用程序。服务器是 Digital Ocean 上的 Ubuntu 14.04。我在服务器上安装了 MySQL,并且可以使用我 database.yml 中的凭据在服务器上使用 mysql CLI 登录。但是,当 Mina 尝试运行 rake db:migrate 时,它​​会失败并显示以下内容:

-----> Migrating database
   $ RAILS_ENV="staging" bundle exec rake db:migrate
   rake aborted!
   Mysql2::Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2)

我验证了 /etc/mysqld/my.cnf 中的套接字位置是 /var/run/mysqld/mysql.sock 并且这也与 database.yml 配置匹配。

为什么?

【问题讨论】:

  • 您可以按照本教程确定您的 mysql.sock [mysql.sock 的位置][1] [1]:stackoverflow.com/questions/5499035/…
  • 确实,这给了我:/var/run/mysqld/mysqld.sock 这是我的配置中的内容并出现在文件系统中。

标签: mysql ruby-on-rails mina


【解决方案1】:

这些是解决问题的步骤:

第 1 步:将您的主机更改为 127.0.0.1

staging:
  adapter: mysql2
  host: 127.0.0.1
  username: root
  password: xxxx
  database: xxxx
  socket: your-location-socket

第 2 步:您的 MySql 服务器似乎有 2 个连接。 要查找您的套接字文件位置,请执行以下操作:

mysqladmin variables | grep socket

对我来说:

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' exists!

mysql --help 

我收到此错误是因为我在我的 OS X 版本 10.9.5 中为 PHP 应用程序安装了 XAMPP。在此处选择默认套接字位置之一。

我选择默认的 Rails 应用程序:

socket: /tmp/mysql.sock

对于我的 PHP 应用程序,我安装了 XAMPP,所以我在这里设置了我的套接字:

socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

OS X 中的其他套接字位置

对于 MAMPP:

socket: /Applications/MAMP/tmp/mysql/mysql.sock

对于来自 MySQL 的包安装程序:

socket: /tmp/mysql.sock

对于与 Mac OS X 服务器捆绑的 MySQL:

socket: /var/mysql/mysql.sock

对于 Ubuntu:

socket: /var/run/mysqld/mysql.sock

详情咨询ruby-on-rails-3-cant-connect-to-local-mysql-server-through-socket-tmp-mysql-s

第 3 步:如果所有这些设置都不起作用,您可以删除您的套接字位置:

staging:
  # socket: /var/run/mysqld/mysql.sock

希望对你有所帮助。

【讨论】:

  • 添加主机:127.0.0.1 就是答案。感谢您提供详细信息。
猜你喜欢
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 2013-01-08
  • 2017-07-30
  • 1970-01-01
  • 2021-07-21
  • 2015-05-24
相关资源
最近更新 更多