嗨,我只是想知道我的数据库连接配置是否正确
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文件是错误还是很自然?抱歉的家伙
答案 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。