MySQL数据库常见错误问题解答
2007-04-22 10:55:44 来源:WEB开发网MySQL以“隐含文件”创建所有临时文件。这保证了如果mysqld被终止,临时文件也将被删除。使用隐含文件的缺点是你将看不到一个大的临时文件填满了临时文件目录所在的文件系统。
当排序(ORDERBY或GROUPBY)时,MySQL通常使用一个或两个临时文件。最大磁盘空间需求是:
(存储东西的长度+sizeof(数据库指针))
*匹配的行数
*2
sizeof(数据库指针)通常是4,但是在未来对确实很大的表可能增加。
对一些SELECT查询,MySQL也创建临时SQL表。这些没被隐含且有“SQL_*”格式的名字。
ALTERTABLE和OPTIMIZETABLE在原数据库表的同一个目录中创建一张临时表。
18.6怎样保护“/tmp/mysql.sock”不被删除
如果你有这个问题,事实上任何人可以删除MySQL通讯套接字“/tmp/mysql.sock”,在Unix的大多数版本上,你能通过为其设置sticky(t)位来保护你的“/tmp”文件系统。作为root登录并且做下列事情:
shell>chmod+t/tmp
这将保护你的“/tmp”文件系统使得文件仅能由他们的所有者或超级用户(root)删除。
你能执行ls-ld/tmp检查sticky位是否被设置,如果最后一位许可位是t,该位被设置了。
18.7Accessdenied错误
见6.6权限系统如何工作。并且特别要看6.13引起Accessdenied错误的原因。
18.8怎样作为一个一般用户运行MySQL
MySQL服务器mysqld能被任何用户启动并运行。为了将mysqld改由Unix用户user_name来运行,你必须做下列事情:
如果它正在运行,停止服务器(使用mysqladminshutdown)。
改变数据库目录和文件以便user_name有权限读和写文件(你可能需要作为Unix的root用户才能做到):
更多精彩
赞助商链接