【发布时间】:2015-12-26 20:03:39
【问题描述】:
您好,我正在 MAC OS X Yosemite 中设置一个 rails 3.2.21 项目。运行命令rake db:create 时出现以下错误
rake 中止! ActiveRecord::StatementInvalid: Mysql2::Error: Can't create database 'sharetribe_development' (errno: 2): CREATE DATABASE
sharetribe_developmentDEFAULT CHARACTER SETutf8COLLATEutf8_unicode_ci
我不知道为什么会出现这个错误。我可以使用mysql -u root 访问 mysql
这是我的 database.yml
development:
adapter: mysql2
database: sharetribe_development
encoding: utf8
username: root
password:
host: localhost
我整天都被这件事困住了。任何建议都将不胜感激
编辑 1
在mysql中,我关注数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
编辑 2
我在 gem 文件中添加了 gem 'mysql2', '~> 0.3.20'。我使用的是 rails 3.2.21。我遇到了另一个问题。我重新安装了mysql。安装后,我可以使用mysql -u root成功访问mysql,但是在执行命令rake db:create之后会抛出以下错误。
拒绝用户 'root'@'localhost' 的访问(使用密码:YES)。 请提供你的mysql安装的root密码
在此之后尝试访问 mysql 我无法访问它。它说 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我没有为mysql设置任何密码。但是我无法访问它。
【问题讨论】:
-
请添加
Gemfile.lock的sn-p,显示mysql、activerecord、rails等的gem版本 -
@illusionist 请看我的最新更新
-
看起来你已经为你的数据库设置了密码但是你的应用试图在没有密码的情况下访问..
-
不,我没有任何密码。在运行
rake db:create之前我可以访问 mysql 但在此之后它会抛出上述错误 -
我记得几天前我也遇到过同样的问题。问题与
activerecord和mysql2之间的gem版本冲突有关;activerecord版本因Rails的版本而异。我认为您应该关注version compatibility以解决您报告的前一个问题
标签: mysql ruby-on-rails activerecord