Mina Deploy 在 rake db:migrate 期间无法连接到 MySQL
Mina Deploy fails connecting to MySQL during rake db:migrate
我刚开始使用 Mina 进行 Rails 4 应用程序部署。这是一个使用 MySQL 的非常简单的应用程序。服务器是 Digital Ocean 上的 Ubuntu 14.04。我在服务器上安装了 MySQL,并且可以使用我的 database.yml 中的凭据在服务器上使用 mysql CLI 登录。但是,当 Mina 尝试 运行 耙子 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 步: 您似乎有 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!
或
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
对于 MySQL 捆绑 Mac OS X 服务器:
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
希望对你有所帮助。
我刚开始使用 Mina 进行 Rails 4 应用程序部署。这是一个使用 MySQL 的非常简单的应用程序。服务器是 Digital Ocean 上的 Ubuntu 14.04。我在服务器上安装了 MySQL,并且可以使用我的 database.yml 中的凭据在服务器上使用 mysql CLI 登录。但是,当 Mina 尝试 运行 耙子 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 步: 您似乎有 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!
或
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
对于 MySQL 捆绑 Mac OS X 服务器:
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
希望对你有所帮助。