[英]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嘗試運行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:看來您有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中的OTHERS套接字位置
對於MAMPP:
socket: /Applications/MAMP/tmp/mysql/mysql.sock
對於MySQL的軟件包安裝程序:
socket: /tmp/mysql.sock
對於與Mac OS X Server捆綁在一起的MySQL:
socket: /var/mysql/mysql.sock
對於Ubuntu:
socket: /var/run/mysqld/mysql.sock
有關詳細信息, ruby-on-rails-3-cant通過套接字tmp-mysql-s連接到本地MySQL服務器
步驟3:如果所有這些設置均無效,則可以刪除套接字位置:
staging:
# socket: /var/run/mysqld/mysql.sock
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.