我是Rails的新手,我遇到了一些问题。 关于系统:Rails-3.2.1 Ruby-1.8.7 RedHat
在本地系统中一切运作良好。 Web主机上出现此问题。 我正在尝试配置系统,但给出的信息不够好。 我正在使用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
捆绑命令
/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个控制器(hello),1个视图(索引)和1个模型。 当root是默认的rails html页面时,没关系,但当我将root修改为'hello #index'时,我得到500错误页面。
我不知道是否有相关内容,但在使用'rake test'时,我得到了这个:
无法通过套接字连接到本地MySQL服务器 '/var/lib/mysql/mysql.sock'
但那里没有mysql.sock。 我一直在寻找这些问题几个小时没有成功。 有人能指出我正确的方向吗?对不起,如果有问题,这是我的第一个问题。
更新1:
netstat -ln | grep mysql
什么都不返回。
更新2: 现在,我收到一个乘客错误页面:
在任何来源中找不到rake-0.9.2.2 (捆扎机:: GemNotFound)
但是gem在Gemfile上。这是我的webhost提供的link来配置测试。忘记葡萄牙语,查看代码,=)。在那里,你可以在主机线上看到IP,而不是我正在做的主机名,但是他们说要使用主机名,因为DB IP可以改变。是的,我正在尝试使用两者的所有测试。
关于套接字行:我之前只有在遇到mysql错误时才使用它。现在我把它删除了。
关于乘客:我在用restart.txt重新启动乘客后进行测试
答案 0 :(得分:1)
感谢您的帮助,但是网友在经过数天和数天的打扰后回答了我。 他们说(简短摘要):
你正在使用rails 3.2.1,这个版本没有好处 共享主机中的性能。我们使用rails 3.0.9进行了测试并且工作正常 一般。请使用3.0.9再次重建您的应用程序。
我甚至不需要说我会改变webhost。他们有rails 3.2.1的教程,但它不起作用。这是疯了,让我担心3天。我的网站主机是Locaweb(BR)。
再次,谢谢你的帮助。
答案 1 :(得分:0)
正在寻找默认路径'/var/lib/mysql/mysql.sock'的套接字 如果这不存在,则必须在socket:parameter
中明确指定它要找出套接字文件的位置,您可以执行以下操作:
netstat -ln | grep mysql
答案 2 :(得分:0)
尝试运行:
$ mysqladmin variables
如果你有mysqladmin ...... ,应该吐出套接字位置
编辑:
开始听起来像Mysql没有运行。尝试:
$ cd /etc/init.d
$ ./mysqld start
或更简单:
$ /etc/init.d/mysqld start
答案 3 :(得分:0)
由于您在尝试重新启动mysqld
时遇到权限问题,我建议您通过电子邮件发送您的虚拟主机并询问他们database.yml
文件的内容,如果您希望运行Rails在他们的系统上投影。
过去,他们有机会帮助其他客户解决这个问题。
如果您收到答案,我建议您将其添加到您的问题中,以便使用相同虚拟主机的其他人知道如何解决数据库问题。
答案 4 :(得分:0)
我认为套接字行在这里没用。 我提供主机线AR应连接到此主机而不是使用unix socket
如果你在mysql配置中没有使用socket,请删除这一行。
<强>更新强>
其他方面不要对test / dev / prod envirnonment使用相同的数据库,因为test会在每次执行测试之前和之后擦除数据库
您可以尝试运行以下命令:
bundle exec rake test
使用它,exeact激活的gem将被用于系统的instaed。
通常在部署到您的产品或其他环境时
做一个
bundle install command
之前安装应用程序所需的所有新宝石
答案 5 :(得分:0)
dig
的一些小作品显示this page explains where to find your MySQL setup details。这对我来说意味着你的webhost使数据库服务器与应用程序服务器分开,所以问题不在于“需要启动MySQL”。
解决方案可能是从socket
移除database.yml
行,并检查host
,username
,password
和database
是否为production
根据上面的链接更正;请注意,您的生产部署几乎肯定会查找development
部分,而不是{{1}}部分。
答案 6 :(得分:0)
为什么不尝试在apache2上使用phpmyadmin来查看MySQL是否会运行以及是否可以运行 检查数据库。此外,它可以帮助更新的rails 3.2.1使用更新的ruby版本,如1.9。我已经看到帖子说1.8有rails 3.1的问题。 祝你好运!
答案 7 :(得分:0)
1)您是否在Gemfile中指定了正确的来源?
例如,您可能将rubygems作为本地计算机中的gem源。
但是对于服务器端,您可能需要添加
source :rubygems
在您的Gemfile中
2)检查您的仓库中是否排除了供应商/缓存。 尝试包含这些文件。