2011-09-15 5 views
0

나는 Ruby on Rails를 배우기 위해 Lynda.com 튜토리얼을 사용하고 있습니다. 6 장에서, 그들은 mysql 데이터베이스를 생성 한 다음 Rails를 위해 구성한다. 우리가 만들고 데이터베이스를 구성한 후, 강사는 레일 응용 프로그램의 "DB"폴더에 schema.rb 파일을 만든 우리의 레일 응용 프로그램레일에 루비가있는 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

Windows를 사용하는 경우 socket 매개 변수가 필요하지 않습니다. 그렇지 않으면 해당 줄을 모두 제거하십시오. – Candide

+0

역 추적을 얻으려면 "rake db : schema : dump --trace"를 시도해야합니다. 또한 강사와 동일한 설정으로 실행되도록 mysql (mysql2 아님) 젬을 사용해보십시오. – sosborn

+0

@sosborn 강사와 똑같은 설치 지침을 따랐습니다. 그가 mysql2 보석을 가지고 있다고 생각합니다 ... 어쨌든, 나는 백 트레이스를 수행하여 OP에서 업데이트에 넣었습니다. 뭐라고 말해 줄까? – Leahcim

답변

1

했다. database.yaml 파일에서 key :와 value 사이에 공백이 있는지 확인하십시오. 예를 들어,

데이터베이스 : simple_cms_development

암호 : 당신의 가치 : 당신이 빈 공간 사이의이 있는지 확인

을 dfdjfdfd. |지도 | routes.rb 파일 상단에

1

새로운 레일 버전 쓰기

Blog::Application.routes.draw do 

    get "demo/index" 

은 넣지 마십시오

관련 문제