答案:通过配置 tmpdir 变量设置 MySQL 临时目录,需修改 my.cnf 或 my.ini 文件中的 tmpdir 路径,确保目录存在并赋予 MySQL 用户读写权限,重启服务后用 SHOW VARIABLES 验证,Windows 支持多路径分隔,会话级设置通常无效。
在 MySQL

要永久设置 MySQL 的临时目录,需要编辑 MySQL 的配置文件:
在配置文件的 [mysqld] 段落下添加或修改 tmpdir 参数:
[mysqld] tmpdir = /data/mysql_tmp确保指定的目录存在,并且 MySQL 服务运行的用户(如 mysql)对该目录有读写权限。
以 Linux 为例:
mkdir -p /data/mysql_tmp chown mysql:mysql /data/mysql_tmp chmod 700 /data/mysql_tmp这能避免因权限不足导致的“Can't create/write to file”错误。
MySQL 不支持动态修改全局 tmpdir 变量,但可以为当前会话设置临时目录(受限于启动时允许的路径):
SET SESSION tmpdir = '/tmp';注意:这种设置通常无效或受限,因为 tmpdir 是只读系统变量,大多数情况下必须通过配置文件设置。
在某些系统上(尤其是 Windows),你可以指定多个临时目录路径,用分号(;)分隔:
tmpdir = /tmp;/data/mysql_tmpMySQL 会轮流使用这些路径存储临时文件,有助于分散 I/O 压力。
重启 MySQL 服务后,登录 MySQL 执行:
SHOW VARIABLES LIKE 'tmpdir';查看输出是否为你配置的路径。
基本上就这些。关键是改配置文件、设权限、重启服务、再验证。不复杂但容易忽略权限问题。