Rails 迁移中的 Mysql2 错误

标签 mysql ruby-on-rails ruby-on-rails-3 rubygems

rake db:migrate 上我得到错误:

Mysql2::Error: Can't read dir of './site_development/' (errno: 13): SHOW TABLES

已安装恶作剧的当前版本:

来自 MySQL 安装包:mysql Ver 14.14 Distrib 5.5.12,适用于 osx10.6 (i386) 使用 readline 5.1

来自 RVM:ruby 1.9.2p180(2011-02-18 修订版 30909)[x86_64-darwin10.7.0]; rails 3.0.7; Mysql2 0.2.7

我知道某些权限需要更新,但我不太确定是哪些权限。

最佳答案

您的数据库是否偶然命名为 site_development?如果是这样,这可能会有所帮助:

确定您的 mysql 数据目录是什么。对我来说,它是 /usr/local/mysql/datasudo ls -l 那个坏小子。我敢打赌,您会找到一个名为 site_development 的目录,该目录的所有者是 root(或 _mysql 用户以外的其他用户)。对我来说,所有 mysql 数据目录都属于 _mysql:wheel。您是否有另一个正常工作的数据库?查看 data 目录中该表的所有权,并确保 site_development 匹配。

我怀疑如果您从命令行运行 mysql,并尝试从该数据库的表中选择某些内容,您会看到类似的错误。如果没有,让我们知道您的数据库名称是什么,您的 mysql 数据目录的权限是什么。

如果您不确定您的 mysql 数据目录在哪里,请尝试输入 which mysql。那应该告诉你 mysql 二进制文件在哪里,它应该在 PATH_PREFIX/mysql/bin/mysql 目录中。数据目录应该是 bin 的兄弟目录,因此它将是 PATH_PREFIX/mysql/data

关于Rails 迁移中的 Mysql2 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6050903/

相关文章:

mysql - 如何使用 SQL 函数计算的新值更新 SQL 表列?

ruby-on-rails - 在 Rails View 中显示整个实例变量

ruby-on-rails - 如何将 postcss-import 与 tailwindcss-rails 和 importmaps 一起使用

ruby-on-rails - Rails 帮助预填充数据 - token 输入字段

ruby-on-rails - 显示Flash消息的最佳实践方法

MySQL 在 LOCATE 中使用用户定义的变量时出现非法的排序规则混合

mysql - 如何在 SQL 查询中 JOIN 父级的类别表?

mysql - 将两个单独的联接合并到一个查询中

ruby-on-rails - 注释 gem 不工作

ruby-on-rails-3 - 在 Rails 3.1.3 Assets 中放置 Jquery 没有冲突