Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t通过套接字连接到本地MySQL服务器:I';我迷路了[Rails应用程序]_Mysql_Ruby On Rails_Amazon Web Services_Ruby On Rails 4 - Fatal编程技术网

Can';t通过套接字连接到本地MySQL服务器:I';我迷路了[Rails应用程序]

Can';t通过套接字连接到本地MySQL服务器:I';我迷路了[Rails应用程序],mysql,ruby-on-rails,amazon-web-services,ruby-on-rails-4,Mysql,Ruby On Rails,Amazon Web Services,Ruby On Rails 4,我目前正在尝试将Rails 4应用程序部署到AWS,但每次尝试在AWS上查看应用程序时,都会出现应用程序错误。我检查了日志,看到: 无法通过套接字'/var/lib/MySQL/MySQL.sock'(2)连接到本地MySQL服务器 我一直在读一些东西,比如:,但我没有任何运气尝试这些不同的解决方案,我把自己逼疯了 该应用程序在本地运行良好 以下是一些细节: 我已经安装了Mysql和Mysql服务器 服务正在运行(同样,本地的一切都按预期工作) 这是my.cnf的[client]部分,位于/

我目前正在尝试将Rails 4应用程序部署到AWS,但每次尝试在AWS上查看应用程序时,都会出现应用程序错误。我检查了日志,看到:

无法通过套接字'/var/lib/MySQL/MySQL.sock'(2)连接到本地MySQL服务器

我一直在读一些东西,比如:,但我没有任何运气尝试这些不同的解决方案,我把自己逼疯了

该应用程序在本地运行良好

以下是一些细节:

  • 我已经安装了Mysql和Mysql服务器
  • 服务正在运行(同样,本地的一切都按预期工作)
这是my.cnf的[client]部分,位于/etc/mysql/

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock
我看到一些关于mysqld的建议,还有一些关于mysql的建议——我不理解其中的区别

Database.yml

development:
  adapter: mysql2
  encoding: utf8
  database: wp_development
  pool: 5
  username: root
  password: **Left out
  host: localhost
我今天刚下载了MySql,所以我使用的是最新版本5.5*我在运行Linux

有人能告诉我一个解决办法吗


谢谢

如果您想在本地连接,应该在database.yml中的
development
config中添加
socket:/var/run/mysqld/mysqld.sock


另外,在AWS上运行应用程序时,请确保RAILS_ENV是正确的。如果未设置,则应为
development
。但我不确定您是如何启动应用程序的。

原因可能是您的文件中指定的套接字路径可能错误

首先,要查找套接字文件:

mysqladmin variables | grep socket
对我来说,这给了:

| socket  /var/run/mysqld/mysqld.sock 
然后,将这一行添加到socket字段中的config/database.yml中。请参见以下示例

示例:
socket:/var/run/mysqld/mysqld.sock

发展模式 生产方式 测试模式
这一点已在其他员额中说明。正如我所提到的,我已经看到了很多这样的解决方案,但没有任何效果。服务器似乎正在运行。我在database.yml中有一个socket,更改为127.0.0.1只会导致另一个错误“无法连接到127.0.0.1上的MySql”。好的,所以我将socket行添加到了我的database.yml中,AWS默认将RAILS_ENV变量设置为production,所以我将其更改为“development”。我取得了进步。我不再在AWS上看到“应用程序失败”错误页面,现在我看到了一个Rails错误页面,但该页面仍然抱怨“无法通过socket连接到本地MySQL服务器”/var/run/mysqld/mysqld.sock“(2)”错误。我正在AWS上使用Beanstalk启动应用程序。“eb启动”。我所相信的几乎都能处理。
development:
  adapter: mysql2
  host: localhost
  username: root
  password: xxxx
  database: xxxx
  socket: /var/run/mysqld/mysqld.sock #  this line
production:
  adapter: mysql2
  host: localhost
  username: root
  password: xxxx
  database: xxxx
  socket: /var/run/mysqld/mysqld.sock  #  this line
test:
  adapter: mysql2
  host: localhost
  username: root
  password: xxxx
  database: xxxx
  socket: /var/run/mysqld/mysqld.sock  #  this line