ActiveRecord :: StatementInvalid:Mysql2 ::错误:无法创建数据库&share39e_development' (错误:2)

时间:2015-09-29 11:06:33

标签: mysql ruby-on-rails activerecord

您好我在MAC OS X Yosemite中设置了rails 3.2.21项目。运行命令rake db:create时出现以下错误

  耙子流产了!   ActiveRecord :: StatementInvalid:Mysql2 ::错误:无法创建数据库&share39e_development' (错误号码:2):创建数据库sharetribe_development默认字符集utf8收集utf8_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' mysql2','〜> 0.3.20'在gem文件上。我使用rails 3.2.21.我遇到了另一个问题。我重新安装了mysql。在安装之后,我可以使用mysql -u root成功访问mysql,但在执行命令rake db:create之后,它会抛出以下错误。

  

拒绝访问用户&root;' @' localhost' (使用密码:是)。   请提供mysql安装的root密码

在尝试访问mysql之后,我无法访问它。它说错误1045(28000):用户访问被拒绝' root' @host;' localhost&#39 ; (使用密码:否)

我没有为mysql设置任何密码。但是我无法访问它。

2 个答案:

答案 0 :(得分:2)

您使用的是mysql2 gem上的哪个版本?

latest version存在问题,您可能希望回退到0.3.20,看看这是否有所不同。

为此,请将以下内容添加到Gemfile

gem 'mysql2', '~> 0.3.20'

删除当前的gemfile.lock并从命令行运行bundle install

答案 1 :(得分:1)

添加gem' mysql2'进入你的Gemfile。