我有一个MySQL服务器(版本5.0.67)在Windows 7上运行。当我在Eclipse中使用hibernate时,我得到了以下错误:
原因:java.sql.SQLException: Can't create/write to file 'C:WindowsTEMP#sql_e9c_0。MYI' (Errcode: 17)
我尝试配置MySQL的TmpPath并将Systemparameters设置为TMPDIR:
TEMP=C:UsersJDD09~1.HERAppDataLocalTemp
TMP=C:UsersJDD09~1.HERAppDataLocalTemp
TMPDIR=C:tmptmpdir
在my.ini中,我做了以下更改:
[mysqld]
tmpdir=C:tmptmpdir
但是,现在MySQL试图启动时中止。
我读过这个线程(改变mysql的tmp文件夹),但它没有帮助。我该如何解决这个问题?
您可能需要确保使用正斜杠'/'而不是反斜杠''。这对我来说很有效,所以您可以使用这一行:
tmpdir = C:/tmp/tmpdir
试试这个:
[mysqld]
tmpdir="C:tmptmpdir"
,并确保路径C:tmptmpdir
必须在系统中存在。
根据Mysql 5.0的手册,关于'TMPDIR': 5.0/en/windows-installation.html。默认是使用windows临时目录。
如果您决定定义它。那么它必须是一个有效的目录。它不会创造它。
我的建议是,对于本地pc上的"开发"系统,不要费心更改它。如果你不确定,那么从"my.ini"中删除条目。这将使用默认设置,这应该可以让您开始。
p。我在windows上使用mysql
根据文档:
在Windows上,MySQL按顺序检查TMPDIR、TEMP和TMP环境变量的值。对于第一个被设置的,MySQL使用它,而不检查剩下的。如果没有设置TMPDIR, TEMP或TMP, MySQL使用Windows系统默认值,通常是C: Windows TEMP .
如果包含临时文件目录的文件系统太小,可以使用mysqld——tmpdir选项指定文件系统中有足够空间的目录。
——tmpdir选项可以设置为以循环方式使用的几个路径的列表。路径之间用冒号(Unix)分隔,用分号(Windows)分隔。
编辑文件C:ProgramDataMySQLMySQL Server 8.0my.ini
在[mysqld]
[mysqld]
tmpdir=C:/tmp/tmpdir
重新启动Windows services下的MySQL服务
更改可以通过以下命令在windows提示符
中进行验证mysql -uroot -p -e "SHOW VARIABLES LIKE 'tmpdir'"