2012-07-30 59 views
2

我已經開始了一個新的rails 3.2項目,默認情況下它使用SQLite。在Rails應用程序中設置MySQL

我在db中沒有數據,現在我打算使用MySQL,因此我在Gemfile中添加了gem'mysql2'並運行'bundle install'。

現在,

我有點不確定該怎麼做。我讀過我應該更改database.yml下的配置行。

但我想知道爲什麼我應該輸入MySQL的用戶名和密碼值。

這些值應該在MySQL中手動設置嗎?

如果是這樣,這是如何完成的?爲什麼SQLite不要求用戶名和密碼?

+1

爲什麼?因爲MySQL具有SQLite沒有的用戶憑證的概念。 – 2012-07-30 13:14:56

+4

SQLite不需要用戶/密碼,因爲它只是一個包含數據的文件。它不接受像服務器這樣的傳入連接 - 如果訪問該文件的用戶可以讀取該文件,則可以訪問該文件。 – 2012-07-30 13:15:01

回答

1

http://www.tutorialspoint.com/ruby-on-rails/rails-database-setup.htm顯示了您需要的語法的快速示例。你非常接近,你只需要通過授予數據庫權限來創建一個新的mysql用戶。

順便說一句,這是我更喜歡用postgresql開發的原因之一。一旦你配置了pg_hba.conf來爲你的本地用戶授予權限,你可以在你的database.yml中放棄用戶名和密碼字段。當你將它與部署到heroku(他們用他們的生產值覆蓋你的database.yml)耦合時,它使得管理(和共享)這個文件非常簡單。

1

這裏是database.yml文件MySQL作爲數據庫的片段。請確保在Gemfile中添加mysql2並運行bundle install

# Ensure the MySQL gem is defined in your Gemfile 
# gem 'mysql2' 
# 
# And be sure to use new-style password hashing: 
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html 

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: example_development 
    pool: 5 
    username: root 
    password: root 
相關問題