Mina Deploy在rake db:migrate期间连接MySQL失败

Mina Deploy在rake db:migrate期间连接MySQL失败,mysql,ruby-on-rails,mina,Mysql,Ruby On Rails,Mina,我对使用Mina进行Rails 4应用程序部署还不熟悉。这是一个使用MySQL的非常简单的应用程序。服务器是数字海洋上的Ubuntu 14.04。我在服务器上安装了MySQL,可以使用mydatabase.yml中的凭据在服务器上使用MySQL CLI登录。但是,当Mina尝试运行rake db:migrate时,它会失败,原因如下: -----> Migrating database $ RAILS_ENV="staging" bundle exec rake db:migrate

我对使用Mina进行Rails 4应用程序部署还不熟悉。这是一个使用MySQL的非常简单的应用程序。服务器是数字海洋上的Ubuntu 14.04。我在服务器上安装了MySQL,可以使用mydatabase.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配置匹配


为什么?

以下是解决问题的步骤:

步骤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服务器。 要查找套接字文件位置,请执行以下操作:

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!

我得到这个错误是因为我在我的OSX 10.9.5版PHP应用程序中安装了XAMPP。在此处选择一个默认套接字位置

我选择默认rails应用程序:

socket: /tmp/mysql.sock
对于我的PHP应用程序,我安装了XAMPP,因此我在这里设置了套接字:

socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
操作系统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
详情请参阅

第3步:如果所有这些设置都不起作用,您可以移除插座位置:

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

我希望这对您有所帮助。

您可以按照本教程[mysql.sock的位置][1][1]来确定您的mysql.sock:事实上,这给了我:/var/run/mysqld/mysqld.sock,它在我的配置中,并显示在文件系统中。添加主机:127.0.0.1就是答案。谢谢你提供的细节。
staging:
  # socket: /var/run/mysqld/mysql.sock