我使用Lynda.com教程来学习Ruby on Rails。在第6章中,他们将创建一个mysql数据库,然后将其配置为Rails。我们创建并配置数据库之后,教练测试从我们的Rails应用程序红宝石在轨道上的mysql错误消息
rake db:schema:dump
这在Rails应用程序的“DB”文件夹中创建一个schema.rb文件的根用这个命令的连接。
但是,对我来说,我得到这个错误讯息,当我跑耙命令
rake aborted!
syntax error on line 18, col 2: ` socket: /tmp/mysql.sock'
Tasks: TOP => db:schema:dump => db:load_config
(See full trace by running task with --trace)
我试图做--trace
检查错误,但它没有做任何事情。
我的database.yml文件(这里我们配置了轨数据库)是一样的教练,除了他的用途mysql
和我说mysql2
的适配器属性
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: simple_cms_development
pool: 5
username: simple_cms
password: secretpassword
socket: /tmp/mysql.sock <<---this is line 18 as referred to in error
不管怎样,错误消息说语法错误在第18行,但我的第18行是完全一样的教师...
任何想法我可以解决这个问题?
更新 - 此命令rake db:schema:dump --trace
给了我这个输出
** Invoke db:schema:dump (first_time)
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
rake aborted!
syntax error on line 18, col 2: ` socket: /tmp/mysql.sock'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/yaml.rb:133:in `load'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/yaml.rb:133:in `load'
/Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/application/configuration.rb:100:in `database_configuration'
/Library/Ruby/Gems/1.8/gems/activerecord-3.1.0/lib/active_record/railties/databases.rake:6
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `call'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:176:in `invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in `invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:157:in `invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:62:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/bin/rake:32
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
Tasks: TOP => db:schema:dump => db:load_config
如果您使用Windows,则不需要套接字参数。否则,请尝试完全删除该行。 – Candide
你应该尝试“rake db:schema:dump -trace”来获得回溯。您还应该尝试使用mysql(而不是mysql2)gem,以便使用与教师相同的设置运行。 – sosborn
@sosborn我遵循了与教练完全相同的安装说明。认为他也有mysql2宝石......反正,我做了回溯,并把它放在OP的更新中。它告诉你什么? – Leahcim