【发布时间】:2012-05-01 23:20:23
【问题描述】:
更新:我公司的系统管理员删除了 /tmp 目录并创建了一个 指向已安装驱动器的符号链接(例如 ln -s /mnt/somewhere /tmp)。 MySQL 显然不喜欢这个符号链接。 在本地文件系统上创建真正的 /tmp 目录后,问题就消失了。
我正在运行一个进程 (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"
第二个和第三个命令(不带引号)失败。第 4 行和第 5 行(带引号)正在工作。所以也许失败是因为井号没有用引号引起来或用反斜杠转义。但同样,即使这是原因,我也不确定如何告诉 MySQL 或 Rails 如何处理它。
有什么想法吗?
【问题讨论】:
-
更新:我公司的系统管理员删除了 /tmp 目录并创建了一个指向已安装驱动器的符号链接(例如 ln -s /mnt/somewhere /tmp)。 MySQL 显然不喜欢这个符号链接。一旦在本地文件系统上创建了一个真正的 /tmp 目录,问题就消失了。
标签: mysql ruby-on-rails rake