2012-02-07 99 views
0

我在Rails的新的和我得到了一些问题。 关于系统:Rails的3.2.1的Ruby-1.8.7的RedHat的Rails 3.2.1 - 无法在任何来源找到耙0.9.2.2 - Locaweb

工作一切良好,在本地系统。该问题发生在网络主机上。 我想配置系统,但给出的信息不够好。 我使用的是mysql(mysql2 gem),并且database.yml配置正确(我猜)。

的database.yml

# MySQL. Versions 4.1 and 5.0 are recommended. 
# 
# Install the MYSQL driver 
# gem install mysql2 
# 
# Ensure the MySQL gem is defined in your Gemfile 
# gem 'mysql2' 
# 
# And be sure to use new-style password hashing: 
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html 
development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: rffaguiar 
    pool: 5 
    username: rffaguiar 
    password: ****** 
    host: mysql01.rffaguiar.com.br 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: rffaguiar 
    pool: 5 
    username: rffaguiar 
    password: ****** 
    host: mysql01.rffaguiar.com.br 

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: rffaguiar 
    pool: 5 
    username: rffaguiar 
    password: ****** 
    host: mysql01.rffaguiar.com.br 

bundle命令

/home/storage/3/d2/f5/rffaguiar/rails_apps/teste_pos$ bundle 
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.0.4) 
Using activesupport (3.2.1) 
Using builder (3.0.0) 
Using activemodel (3.2.1) 
Using erubis (2.7.0) 
Using journey (1.0.1) 
Using rack (1.4.1) 
Using rack-cache (1.1) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.1) 
Using mime-types (1.17.2) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.1) 
Using actionmailer (3.2.1) 
Using arel (3.0.0) 
Using tzinfo (0.3.31) 
Using activerecord (3.2.1) 
Using activeresource (3.2.1) 
Using bundler (1.0.21) 
Using coffee-script-source (1.2.0) 
Using execjs (1.3.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.6.5) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.1) 
Using coffee-rails (3.2.2) 
Using johnson (1.2.0) 
Using jquery-rails (2.0.0) 
Using mysql (2.8.1) 
Using mysql2 (0.3.11) 
Using rails (3.2.1) 
Using sass (3.1.14) 
Using sass-rails (3.2.4) 
Using uglifier (1.2.3) 
[32mYour bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.[0m 

测试程序只有1个控制器(你好),1个图(索引)和1个模型。 当根目录是默认的rails html页面时,没关系,但是当我将根目录修改为'hello#index'时,我得到了500个错误页面。

我不知道那里有什么关系,但使用“耙测试”当我得到这个:

无法通过套接字连接到本地MySQL服务器 “在/ var/lib中/ MySQL的/ mysql.sock'

但是没有mysql.sock那里。 我一直在寻找关于这些问题几个小时而没有成功。 任何人都可以指向正确的方向吗?对不起,如果有错误,这是我的第一个问题。

更新1:

netstat -ln | grep mysql 

返回任何内容。

更新2: 现在,我得到一个乘客错误页面:

任何来源 (捆扎机:: GemNotFound)找不到耙0.9.2.2

但是宝石是在Gemfile.This是link由我的网络主机提供配置测试。忘记葡萄牙语,看代码,=)。在那里,你可以在主机上看到IP,而不是像我这样的主机名,但他们说使用主机名,因为数据库IP可以改变。是的,我正在尝试使用这两种测试。

关于套接字行:我以前只有在遇到mysql错误时才使用它。现在我删除它。

关于乘客:与restart.txt

+0

你说“database.yml配置正确(我猜)” - 为什么这是一个猜测?你从哪里得到这个配置 - 尤其是'socket'线? – Gareth 2012-02-07 08:37:53

+0

mysql --version返回:mysql Ver 14.14 Distrib 5.1.54,使用readline的unknown-linux-gnu(x86_64)5.1 – rffaguiar 2012-02-07 08:40:39

+0

@Gareth:我从webhost获取了database.yml。我在'mysql.sock'中给出的错误后测试了套接字行。但我测试过,没有它。 – rffaguiar 2012-02-07 08:42:29

回答

1

感谢您的帮助,但网络主机经过几天和几天的时间对我进行了解答,让我感到困扰。 他们说(一个简短的总结):

您使用的铁轨3.2.1这个版本不具有共享主机的好 性能。我们使用rails 3.0.9进行了测试,并且正常工作了 。请使用3.0.9重新编译您的应用程序。

我甚至不需要说我会改变网络主机。他们有一个rails 3.2.1的教程,它不起作用。这是疯了,我担心3天。我的网络主机是Locaweb(BR)。

再次感谢您的帮助。

0

它在默认路径“的/ var/lib中/ MySQL的/ mysql的寻找插座重新启动后,乘客我做了测试。袜子” 如果这不是它存在,你必须在插座明确指定:参数

找出套接字文件,你可以这样做:

netstat -ln | grep mysql 
+0

哦,对不起,我做了,但忘了最后一行'socket:/var/lib/mysql/mysql.sock'。你的命令在这里什么也没有返回 – rffaguiar 2012-02-07 08:26:44

+0

所以它意味着mysql服务/恶魔没有运行。让它先运行。 – Nilesh 2012-02-07 08:54:04

+0

Nilesh:“mysqld start”返回'找不到命令' – rffaguiar 2012-02-07 09:03:10

0

尝试运行:

$ mysqladmin variables 

应该吐出插槽的位置,如果你有中mysqladmin ...

编辑:

开始听起来像我Mysql没有运行。尝试:

$ cd /etc/init.d 
$ ./mysqld start 

或者更简单地说:

$ /etc/init.d/mysqld start 
+0

mysqladmin变量返回相同的'mysql.sock错误', – rffaguiar 2012-02-07 08:54:10

+0

当我尝试使用mysqld start:'command not found' – rffaguiar 2012-02-07 09:02:32

+0

您是否使用了'./ '在它前面? – Matthew 2012-02-07 09:04:47

0

既然你想重新启动mysqld时遇到的权限问题,我建议通过电子邮件发送的虚拟主机提供商,并要求他们在您的database.yml文件应该是什么比如你想在他们的系统上运行Rails项目。

过去他们已经帮助其他客户解决了这个问题。

如果您收到答案,我鼓励您将其添加到您的问题中,以便使用相同虚拟主机的其他人将知道如何解决数据库问题。

+0

问题是mysql没有运行,他不知道他在做什么。你的建议只会解决其中一个问题。有时候,学习的唯一方法就是让你的手变得浑浊:)我得到了他的背... – Matthew 2012-02-07 09:23:27

+0

是的,我打开了一张票,几个小时前发了一封电子邮件。我只是在早晨给他们打电话。关于'他们有可能帮助别人',很可能。但他们的论坛目前处于离线状态。 – rffaguiar 2012-02-07 09:23:32

0

我认为套接字线在这里没有用。 我你提供一个主机线AR应该连接到这个主机,而不是使用Unix的插座

如果你不使用套接字在你的mysql配置删除这一行。

更新

其他点不使用的测试/开发/生产envirnonment同一个数据库,因为测试将擦除数据库在每次测试后,执行

你可以尝试运行下面的命令:

bundle exec rake test 

有了它,激活的激活宝石将被用于系统的激活。

总体部署到PROD或其他envirnonment当

bundle install command 

之前,所以它安装所有的应用程序所需的新宝石

+0

我删除它,但错误仍在继续。 – rffaguiar 2012-02-08 19:56:30

0

与显示了一个小的工作, this page explains where to find your MySQL setup details。这意味着你的虚拟主机让数据库服务器与应用程序服务器分开,所以问题不在于“需要启动MySQL”。

该溶液可能是从database.yml除去socket线,并检查hostusernamepassworddatabase是按照上面的链接正确;请注意,您的生产部署几乎肯定会查找production部分,而不是development部分。

+0

1 - 我正在尝试使用和不使用套接字线的所有测试。此时,我将其删除。 2-关于mysql设置,这是我的主机提供的[link](http://wiki.locaweb.com/pt-br/Criando_teste_com_rails_3)。主机线路与IP一起提供,但他们说使用主机名称是因为数据库IP可以更改。 3 - 我在开发,测试和生产中使用相同的配置。可能错误是我的,但我不知道是什么。 – rffaguiar 2012-02-08 19:15:14

+0

你可以将整个'database.yml'粘贴到问题中吗? – nickgrim 2012-02-09 11:50:30

+0

是的。现在有问题了。 – rffaguiar 2012-02-09 22:36:24

0

为什么不尝试在apache2上使用phpmyadmin来查看MySQL是否可以运行,并且还可以获取您的 数据库进行检查。此外,它可以帮助更新的rails 3.2.1使用更新的ruby版本,如1.9。我已经看到帖子说1.8与rails 3.1有问题。 祝你好运!

0

1)您是否在Gemfile中指定了正确的源代码?

例如,您可能将rubygems作为本地计算机中的宝石源。 但对于服务器端,您可能需要添加 source :rubygems 在你的Gemfile

2)检查您是否在您的回购排除供应商/缓存。 尝试包括这些文件。

相关问题