簡體   English   中英

在rake db:migrate期間,Mina Deploy無法連接到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嘗試運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM