尝试使用 Rails 创建数据库时出错,rake db:create

Posted

技术标签:

【中文标题】尝试使用 Rails 创建数据库时出错,rake db:create【英文标题】:Error when trying to create database with Rails, rake db:create 【发布时间】:2010-11-28 18:39:26 【问题描述】:

我正在使用 Ruby1.9 和 Rails 2.3.4,并且安装了 mysql-ruby (2.8.1) gem。

当我尝试 rake db:create 时,我得到以下信息

无法为 "适配器"=>"mysql", “数据库”=>“战争发展”, “用户名”=>“root”,“密码”=>无, “主机”=>“本地主机”,字符集:utf8, 排序规则:utf8_unicode_ci (如果你设置 手动设置字符集,请确保您 有一个匹配的排序规则)

我的 database.yml 有以下内容供开发

development:
  adapter: mysql
  database: war_development
  username: root
  password: 
  host: localhost

有什么想法吗?

谢谢,

【问题讨论】:

从错误中我会说您的数据库的字符集与您尝试执行的操作不匹配: charset: utf8 collat​​ion: utf8_unicode_ci 不确定是否有办法设置查询的字符集在铁轨上? 【参考方案1】:

您将检查您的用户名和密码是否正确。 您还将检查您的 mysql 服务器是否正常工作。 并且有时发现套接字路径的问题大部分时间都在 /tmp 目录中,但有时可能不是。所以尝试使用默认路径。

希望如果您尝试此方法,它将对您有用。

【讨论】:

【参考方案2】:
$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql/bin/mysql

为我工作。谢谢!

【讨论】:

【参考方案3】:

我按照另一个SO thread 中的步骤进行操作。但是,我的安装命令与那里的命令不同,因为我不是升级现有数据库而是安装新数据库。因此,而不是建议一个

$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

我输入了以下内容

$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql/bin/mysql

PS:host:localhost保持原样,不用改成127.0.0.1

【讨论】:

【参考方案4】:

奇怪地看到一些行为改变,我不知道它是否特定于雪豹。我使用老虎并得到了同样的错误。我加了

  host: 127.0.0.1

到以下(当然使用正确的 mysql root/pw)

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: blog_development
  pool: 5
  username: root
  password: *********
  socket: /tmp/mysqld.sock

而且它有效(在tiger/gem mysql-2.8.1/mysql Ver 14.14 Distrib 5.1.30 上)。希望对您有所帮助。

【讨论】:

【参考方案5】:

你可以使用没有密码的root用户吗? mysqlserver 监听的是 127.0.0.1 还是 localhost?

【讨论】:

我用的是 127.0.0.1 而不是 localhost...似乎有所不同。 也许这样更清楚:***.com/questions/7382602/… 哇,对我来说恰恰相反:127.0.0.1 不起作用,但 localhost 起作用了

以上是关于尝试使用 Rails 创建数据库时出错,rake db:create的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4.1.4 在推送到 Heroku 时尝试连接到未初始化的 Mongo 数据库(rake assets:precompile)

在 rake 任务中使用 rails logger,rails 5

部署 Rails 应用程序时无法检测到 rake 任务

Rails 4 - AwesomeEotPath 之后 Rake 中止,无效的 CSS

rails rake 任务是不是提供对 ActiveRecord 模型的访问?

rake 规范不使用 rails 环境