在 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/data
。 sudo 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/