2011-09-15 15 views
0

私はRuby on Railsを学ぶためにLynda.comチュートリアルを使用しています。第6章では、mysqlデータベースを作成し、それをRails用に構成します。我々が作成し、データベースを設定した後、インストラクターは、R​​ailsアプリケーションの「DB」フォルダにschema.rbファイルを作成し、当社のRailsアプリケーションruby​​ on ruby​​でのmysqlエラーメッセージ

rake db:schema:dump 

のルートからこのコマンドを使用して接続をテストします。

しかし、私のために、私はエラーをチェックするために--traceを実行しようとしましたすくいコマンド

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) 

を実行したとき、私は、このエラーメッセージが表示されましたが、それは何もしませんでした。

マイdatabase.ymlのファイル(私たちはレール用のデータベースを構成し)自分の用途mysql除き、インストラクターと同じであると私は、アダプタ属性とにかく

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 

ためmysql2を言い、エラーメッセージが言いました18行目の構文エラーですが、私の18行目はインストラクターとまったく同じです...

どのように私はこの問題を解決できますか?

UPDATE - このコマンド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 
+0

ウィンドウを使用している場合は、socketパラメーターは必要ありません。それ以外の場合は、その行を削除してみてください。 – Candide

+0

バックトレースを取得するには、 "rake db:schema:dump --trace"を実行する必要があります。また、インストラクターと同じ設定で走っているように、mysql(mysql2ではなく)のgemを試してみてください。 – sosborn

+0

@sosbornインストラクターとまったく同じインストール手順に従いました。彼はmysql2の宝石を持っていたと思う...とにかく、私はバックトレースを行い、OPのアップデートに入れました。それはあなたに何かを伝えますか? – Leahcim

答えて

1

を与えました。 database.yamlファイルで、キーと値の間にスペースがあることを確認します。例えば、

データベース:simple_cms_development

パスワードは:とあなたの価値:あなたは空白の間にあることを確認してください

をdfdjfdfd。 |地図| routes.rbをファイルの一番上にある

1

新しいレールのバージョンの書き込み

Blog::Application.routes.draw do 

    get "demo/index" 

は入れていません

関連する問題