对一些SELECT 查询,MySQL也创建临时SQL表。这些没被隐含且有“SQL_*”格式的名字。
ALTERTABLE 和OPTIMIZETABLE 在原数据库表的同一个目录中创建一张临时表。
18.6怎样保护“/tmp/sql/Index.html'>mysql.sock”不被删除
如果你有这个问题,事实上任何人可以删除MySQL通讯套接字“/tmp/sql/Index.html'>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服务器sql/Index.html'>mysqld 能被任何用户启动并运行。为了将sql/Index.html'>mysqld 改由Unix用户user_name 来运行,你必须做下列事情:
- 如果它正在运行,停止服务器(使用
sql/Index.html'>mysqladminshutdown )。
- 改变数据库目录和文件以便
user_name 有权限读和写文件(你可能需要作为Unix的root 用户才能做到):shell>chown-Ruser_name/path/to/sql/Index.html'>mysql/datadir
如果在MySQL数据目录中的目录或文件是符号链接,你也将需要顺着那些链接并改变他们指向的目录和文件。chown-R 不能跟随符号链接。
- 以
user_name 用户启动服务器,或如果你正在使用MySQL3.22或以后版本,以Unixroot 用户启动sql/Index.html'>mysqld 并使用--user=user_name 选项,sql/Index.html'>mysqld 将在接受任何连接之前切换到以Unixuser_name 用户运行。
- 如果在系统被重新启动时,你使用
sql/Index.html'>mysql.server 脚本启动sql/Index.html'>mysqld ,你应该编辑sql/Index.html'>mysql.server 用su 以用户user_name 运行sql/Index.html'>mysqld ,或使用--user 选项调用sql/Index.html'>mysqld 。(不改变safe_sql/Index.html'>mysqld 是必要的。)
(编辑:aniston)
|