rubyonrails mysql2

时间:2011-11-11 05:03:40

标签: mysql ruby-on-rails ruby

嗨,我只是想知道我的数据库连接配置是否正确

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:create

它就像这样

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红宝石版 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

但是我的db文件夹中有glob_development文件是错误还是很自然?抱歉的家伙

2 个答案:

答案 0 :(得分:1)

当你运行rake db:create时,它说它有效并且那些数据库已经存在。在MySQL Workbench上查看这些db(或通过终端中的mysql在命令行界面中查看它们)。

运行rake db:migrate来更新数据库。

如果在“db”文件夹中没有看到它,请尝试连接到mysql服务器并进行检查。你有这个细节吗?它通过/tmp/mysql.sock连接到你的mysql服务器。

检查您的用户名和密码是否从mysql连接到数据库(使用上述方法之一)。

答案 1 :(得分:-1)

rails new project_name 

上面的行创建了一个新项目,同时创建了SQLite数据库。但如果你跑

rails new project_name -d mysql

然后没有创建数据库,你必须运行

rake db:create

您的问题可能与适配器有关,我在mac中遇到了这个问题。我不得不将适配器选项更改为mysql。还包括Gemfile中的mysql gem。