Rails迁移时出现Mysql2错误

时间:2011-05-18 20:55:43

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

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

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

2 个答案:

答案 0 :(得分:4)

您的数据库是否有机会命名为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

答案 1 :(得分:0)

对于Mac OS,请运行

sudo chown -R mysql:mysql /usr/local/mysql*

用户mysql应具有对mysql数据目录的写访问权。