更新:我公司的系统管理员删除了/ tmp目录,并创建了一个 到已装入驱动器(例如ln -s/mnt/somewhere/tmp)的符号链接。 MySQL显然不喜欢这个符号链接。 一旦创建了本地文件系统上的real/tmp目录,问题就消失了。在运行Rails迁移时无法写入MySQL临时文件
我正在运行一个进程(rake db:migrate),它导致MySQL尝试创建一个临时文件。 但是,下面的错误出现:
Mysql::Error: Can't create/write to file '/tmp/#sql_196_0.MYI' (Errcode: 13):
SHOW FIELDS FROM `user_rules`
ERRCODE 13显然是文件权限问题。 正在运行进程的用户具有对/ tmp目录的写入权限。 我也搜索了网页,有人提到这个问题可能是文件前缀为英镑符号(例如'#')。
我去了/ tmp目录,并试图创建该文件,并注意到在某些情况下,我无法创建文件,所以我想知道如果确实井号是造成问题,如果是,如何使用MySQL或者Rails来解决这个问题:。
cd /tmp
echo "Hello" > #sql_123
touch #sql_123
echo "Hello" > "#sql_123"
touch "#sql_123"
的第二和第三个命令(没有引号)失败了,第四和第五行(带引号)正在工作,所以也许失败是因为英镑符号不在引号中或者用反斜线转义,但是即使这样原因,我不知道如何ell MySQL或Rails如何处理它。
任何想法?
UPDATE:我公司的系统管理员删除了/ tmp目录,并创建了一个 指向挂载驱动器的符号链接(例如ln -s/mnt/somewhere/tmp)。 MySQL显然不喜欢这个符号链接。 一旦创建了本地文件系统上的real/tmp目录,问题就消失了。 – Chris 2012-05-12 06:13:31