尝试使用 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 collation: 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 4 - AwesomeEotPath 之后 Rake 中止,无效的 CSS