当我在本地主机上运行我的服务器时出现问题(ruby on rails)

Posted

技术标签:

【中文标题】当我在本地主机上运行我的服务器时出现问题(ruby on rails)【英文标题】:Problem when I run my server on localhost (ruby on rails) 【发布时间】:2011-05-19 08:14:45 【问题描述】:

当我在 CMD 中键入 rails server 时,服务器工作正常,我可以转到 localhost:3000。 但是当我在 CMD 中得到这个消息并且在错误部分的 localhost:3000 上的浏览​​器中得到相同的消息之后。

Started GET "/rails/info/properties" for 127.0.0.1 at 2010-12-02 21:14:55 +0200

mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):

Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/_trace.erb (1.0ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/_request_and_response.erb (30.0ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/diagnostics.erb within rescues/layout (97.0ms)

有什么问题?

这是database.yml文件:

#MySQL。版本 4.1 和 5.0 是 推荐的。 # # 安装 MySQL 驱动: # 宝石安装 mysql2 # # 并且一定要使用新式密码散列: #http://dev.mysql.com/doc/refman/5.0/en/old-client.html 发展: 适配器:mysql2 编码:utf8 重新连接:假 数据库:simple_cms_development 游泳池:5 用户名:root 密码: 主机:本地主机

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run

“耙子”。 # 不要将此数据库设置为与开发或生产相同。 测试: 适配器:mysql2 编码:utf8 重新连接:假 数据库:simple_cms_test 游泳池:5 用户名:root 密码: 主机:本地主机

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: simple_cms_production
  pool: 5
  username: root
  password:passwordex
  host: localhost

【问题讨论】:

您的 MySQL 数据库服务器不允许 root 访问。为 MySQL 配置了哪些用户? 我想每个人..defuelt,我该如何改变这个? 【参考方案1】:

您正在为您的 mysql 用户使用 root,但未在 config/database.yml 中提供 root 密码。

顺便说一句,虽然它在开发中通常没问题,但在生产中使用 root mysql 用户或用于登台是一个非常糟糕的主意。

这是一个典型的 mysql 配置部分:

production:
  adapter: mysql
  database: app_production
  username: root
  password: password
  pool: 5
  timeout: 5000
  encoding: utf8

【讨论】:

10 倍!!!那么我应该在文件 config/database.yml 中写什么="password:" ?我只写了 exmpale: "pass1234" 的密码,如下所示: password: pass1234 ,它告诉我 syntix 已磨损,什么磨损了? 10x agin man! ArgumentError 语法错误,第 38 行,第 1 列:`password123 host:localhost' 您必须粘贴您的 database.yml 文件。请编辑您的问题以包含该问题,以便保留格式。 "password:" 后面需要一个空格 => "password:password" 另外,请确保您正在运行您希望运行的环境。如果你只是运行“script/server”或“rails server”,你将进入开发环境,而不是生产环境,所以请确保在那里设置数据库密码。【参考方案2】:

我知道您已经找到了问题的解决方案,但无论如何我都会将其作为答案发布,以供那些可能偶然发现同样问题的人使用。

遇到同样的Access denied for user 'user'@'localhost' (using password: NO) 问题,我的database.yml 文件格式错误。原因? YAML 不允许使用某些字符:我碰巧使用了“!”在我的密码中,并且无论出于何种原因,读取此 database.yml 文件的 YAML 解析器忽略了我的密码行,就像它不存在一样,因此即使我明确声明了 (using password: NO)

解决方案?更改了我的密码以不包含任何 YAML 特殊字符。不过,我想可能有办法逃脱它。还是很烦人。

【讨论】:

也可以用引号括起来。

以上是关于当我在本地主机上运行我的服务器时出现问题(ruby on rails)的主要内容,如果未能解决你的问题,请参考以下文章

在本地主机上运行 laravel 时出现内部服务器错误

tesseract-php 包装器在本地主机上运行时出现路径错误

当我尝试在服务器上运行 java web-app 时出现问题

在本地运行时出现扭曲 / wokkel 的连接问题

当我在本地机器上运行或调试 MVC 应用程序时出现空白页

本地主机上的 recv() 数据丢失