2011-11-11 92 views
2

嗨我只是想知道如果我的數據庫連接的配置是正確的ruby​​onrails mysql2

development: 
    adapter: mysql2 
    encoding: utf8 
    database: db/glob_development 
    pool: 5 
    username: root 
    password: mysql 
    host: localhost 
    socket: /tmp/mysql.sock 
    timeout: 5000 

,因爲當我嘗試運行rake:DB:創建

它是這樣的

WARNING: This version of mysql2 (0.2.17) isn't compatible with Rails 3.1 as the ActiveRecord adapter was pulled into Rails itself. 
WARNING: Please use the 0.3.x (or greater) releases if you plan on using it in Rails >= 3.1.x 
DEPRECATION WARNING: Arel::Visitors::VISITORS is deprecated and will be removed. Database adapters should define a visitor_for method which returns the appropriate visitor for the database. For example, MysqlAdapter.visitor_for(pool) returns Arel::Visitors::MySQL.new(pool). (called from mon_synchronize at /home/led/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201) 
db/test.sqlite3 already exists 
db/production.sqlite3 already exists 

即時通訊在fedora15中運行 1.9.2p290 ruby​​版本 rails 3.1.1

編輯

只需下載mysql2與和改變我的Gemfile

gem 'mysql2', '~>0.3.10' 

嚴正只是想知道 終端天天說

db/glob_development already exists 
db/test.sqlite3 already exists 
db/production.sqlite3 already exists 

但我的數據庫文件夾dosent有無glob_development文件是錯誤還是很自然的?抱歉,傢伙

回答

1

當您運行rake db:create時,它表示它工作並且這些數據庫已經存在。在MySQL Workbench上查看這些數據庫(或者通過終端中的mysql命令行界面來檢查它們)。

運行一個rake db:migrate來更新你的db。

如果你沒有在你的「db」文件夾中看到它,請嘗試連接到你的mysql服務器並檢查。你有關於這個的細節嗎?它通過/tmp/mysql.sock連接到你的mysql服務器。

檢查您的用戶名和密碼從mysql連接到數據庫(使用上述方法之一)。

+0

感謝回覆它已經是他們已經愚蠢的我:)順便說一下我的配置好嗎?我不知道/tmp/mysql.sock thingy對不起:( – Led

+0

是的。如果你對這個「...已經存在」的問題有疑問,應該在Rails 3.1中解決(https://github.com/rails/ rails/issues/899)。只要確定你已經得到了ruby 1.9.2或ruby 1.9.3,rails 3.1;運行「bundle install」來更新gem;並確保你正在閱讀的任何教程參考ruby 1.9(和不是1.8)如果這是你的環境 –

-1
rails new project_name 

上面的代碼創建一個新的項目,並創建SQLite數據庫。但是,如果你運行

rails new project_name -d mysql 

則不會創建數據庫,你必須運行

rake db:create 

你的問題可能與適配器,我在Mac面臨這個問題。我不得不將適配器選項更改爲mysql。在Gemfile中還包括mysql gem。

+0

從這個問題看來,他知道需要運行'db:create',所以這似乎並沒有很好地解決這個問題。 – Rym