2010-01-24 6 views
6

편집 :이 포럼 게시물 덕분에 문제가 해결되었습니다 : http://forums.aptana.com/viewtopic.php?f=20&t=7563&p=27407&hilit=libmysql.dll#p27407. 모두에게 감사드립니다!Ruby on Rails 레이크 오류

나는 RoR을 배우기 시작했고 rake db:migrate을 사용하려고했지만 동일한 오류가 계속 발생합니다. C:\dev\railslist>mysql -u root railslist_development -p을 사용하여 MySQL 데이터베이스에 연결할 수 있습니다. rake db:migrate --trace는 생산 다음

development: 
    adapter: mysql 
    database: railslist_development 
    username: root 
    password: ********** 
    host: localhost 

    ... 

편집 : 미안 해요, 난 거기 혼합있어 ... 내가 받는 연결할 수 있습니다 다음과 같이

C:\dev\railslist>rake db:migrate --trace 
(in C:/dev/railslist) 
** Invoke db:migrate (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:migrate 
rake aborted! 
Mysql::Error: query: not connected: CREATE TABLE 'schema_migrations' ('version' 
varchar(255) NOT NULL) ENGINE=InnoDB 
C:/Ruby19/lib/ruby/gems/1.9.1/gems/activerecord-2.3.5/lib/active_record/connecti 
on_adapters/abstract_adapter.rb:219:in 'rescue in log' 
C:/Ruby19/lib/ruby/gems/1.9.1/gems/activerecord-2.3.5/lib/active_record/connecti 
on_adapters/abstract_adapter.rb:202:in 'log' 
C:/Ruby19/lib/ruby/gems/1.9.1/gems/activerecord-2.3.5/lib/active_record/connecti 
on_adapters/mysql_adapter.rb:323:in 'execute' 
C:/Ruby19/lib/ruby/gems/1.9.1/gems/activerecord-2.3.5/lib/active_record/connecti 
on_adapters/abstract/schema_statements.rb:114:in 'create_table' 
... 

내 database.yml을 파일입니다 mysql connect localhost을 사용하는 MySQL 데이터베이스 - 명령 및 변수의 긴 목록을 생성합니다. 또한 mysql -h localhost -u root -p을 입력하면 MySQL 프롬프트에 로그인 할 수 있습니다. 따라서 명확히하기 위해 : 은 명령 줄을 통해 MySQL 데이터베이스에 연결될 수 있지만 RoR Rake에서는 오류가 발생합니다.

+0

database.yml 파일에 무엇이 들어 있습니까? – Mick

답변

1

mysql 인스턴스가 실행 중이 아니거나 config/database.yml이 환경 (보통 개발)의 올바른 데이터베이스를 가리 키도록 구성하지 않았기 때문에 거의 확실합니다. 여기에 시도 할 몇 가지 -

  • 확인하여 설정/database.yml을 -
  • 이 MySQL을 실행 해보십시오 (더 호스트 가 목록에없는 경우, 그것은 로컬 호스트에 연결하는 것) 호스트입니다 을 -h localhost 및 mysql이 실행 중인지 확인하십시오.

편집 : 당신이 당신의 로컬 호스트 데이터베이스에 연결할 수없는 경우 다음 문제가되지 레일과 함께있다. 실행 중인지 확인하고 사용 권한이 컴퓨터와의 연결을 허용하도록 올바르게 설정되어 있는지 확인하십시오. 또한 로컬 컴퓨터에서 루트로 연결하여보다 세분화 된 문제인지 확인하십시오 (예 : 로컬 연결을 사용하도록 설정했으나 Rails에서 사용중인 사용자에게는 해당하지 않음).

편집 2 : 이 경우 데이터베이스가 생성되지 않았을 가능성이 있습니다. 간단히 명령 줄로 이동하여 다음을 입력 :

mysql -u root -p -e 'create database railslist_development;'

이 데이터베이스를 작성해야하고 마이그레이션을 실행할 수 있습니다.

+0

감사합니다. database.yml 파일을 게시했습니다. 문제가 있습니까? –

+1

문제가 해결되었습니다 - 도움 주셔서 감사합니다! –

2

DB가 생성되지 않았습니다.

당신이하고있는 DB를 생성해야 rake db:migrate를 실행하기 전에, MySQL을 사용 :

rake db:create 

또는 SQL 명령을 통해 수동으로 데이터베이스를 만듭니다.

 
mysql -h localhost -u root -p 
> CREATE DATABASE railslist_development; 

이 정보가 도움이되기를 바랍니다.

+0

Hmmm ...'rake db : create'를 호출하면 데이터베이스를 삭제하고 다시 시도 할 때 "데이터베이스가 이미 있습니다"라는 오류 (SQL 명령을 사용하기 전에 작성 했음) 오류가 반환됩니다. 성공! MySQL에서 확인한 결과 데이터베이스가 생성되었지만 'rake db : migrate'를 호출 할 때도 여전히 동일한 오류가 발생합니다. create' : 레이크 dB'호출 할 때 은 또한 이상한 오류 메시지를 받았습니다 'C : \ dev에 \ railslist> 레이크 dB : 생성 가 (C에서 :는/dev/railslist)

: [버그] 분할 오류 루비 1.9.1p243 (2009-07-16 수정 24175) - 제어 프레임 ---------- c : 0001 p : 0000 s : 0002 b : 0002 l : 00269c d : 00269c TOP ' –

+0

이것이 루비에 대한 버그/문제라고 생각합니까? 제가 겪고있는 문제입니까, 아니면 여전히 올바르게 설정되어 있지 않은 것입니까? Ruby *는 MySQL과 통신 할 수 있지만 (오류가 있지만 데이터베이스를 만들었지 만) rake db : migrate에 실패 할 수 있습니다. –

2

나는 그 자체로 질문에 대답하지 않고, 단지 배우기 때문에, 왜 지금 단순한 sqlite를 고수하지 않을까?

+0

감사합니다. 나는 그것에 대해 생각할 것입니다. –

3

여기서 명확히하기 위해 클라이언트 MySQL 라이브러리가 현재 Rails 2.3에서 작동하지 않는 것이 문제입니다.

이 해결하려면 :

  1. 다운로드 클라이언트 라이브러리 here
  2. 드롭 당신의 루비 bin 디렉토리에이 파일의 이전 버전을
  3. MySQL의 서비스를 다시 시작

    [1] [1] : http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll "여기"

+0

안녕하세요, 도움 주셔서 감사합니다. 내 말이 맞습니다. 그러나, 나는 당신이 나의 질문의 정상에 볼 수 있던대로, 이미 그것을 해결했다. –

+0

이것은 나를 위해 일했습니다. 또한 database.yml에 localhost에 맞는 설정이 있는지 확인하십시오. – hohner

+0

적어도 [this guy] (http://www.continuousgreg.com/blog/?p=41)에 대한 크레딧이나 참조를 제공하십시오. – JMelnik