在rake db:migrate
我收到错误:
Mysql2 ::错误:无法读取dir './site_development/'(错误: 13):SHOW TABLES
已安装的恶作剧的当前版本:
来自MySQL安装包:mysql Ver 14.14 Distrib 5.5.12,for 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
我知道某些权限需要更新,但我不太确定哪些权限。
答案 0 :(得分:4)
您的数据库是否有机会命名为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
。
答案 1 :(得分:0)
对于Mac OS,请运行
sudo chown -R mysql:mysql /usr/local/mysql*
用户mysql应具有对mysql数据目录的写访问权。