Its an OS issue - You need to re-create a proper tmp environment.
InnoDB: Compressed tables use zlib 1.2.3
^G/opt/lampp/sbin/mysqld: Can't create/write to file '/tmp/ibvzIUFr' (Errcode: 13)
120628 19:01:01 InnoDB: Error: unable to create temporary file; errno: 13
all applications need 'disk workspace' - normally that space is defined in the OS environment variable 'tmp' or 'temp'
Its exactly what you said in the first post, you wiped out the workspace that OS uses (or recreated it with improper ownership or permissions).
Things besides MySQL rely on the temp workspace - PHP usually stores its sessions variables there, and Perl uses it for file uploads via CGI. (among a long list of needs)
The /tmp folder is a special folder that is automatically dumped in most distributions on a reboot of the server. Its only used to process workfiles.
I have never had to re-create one BUT I do know it should be owned by 'root:root" and its permissions should be drwxrwxrwt - meaning all users have complete rights in it AND its a sticky folder (AFAIK) (that's what the final 't' is in the permissions).
Read this for sure:
http://en.wikipedia.org/wiki/Sticky_bithttp://www.redhat.com/mirrors/LDP/LDP/G ... sions.html I urge you to either fix the issue or re-install the OS, as it is sure to mess you up at some point. I will say that it might be possible to create a different location for the tmp files used only by MySQL (you can also do that with PHP) but unless you understand a lot about how things work, its almost always a bad idea.
in /opt/lampp/etc/my.cnf, line 118 you will find the assignment of the tmpdir variable - IF the line is commented out, MySQL will use the OS tmp folder - thus your problem.
http://www.linuxforums.org/forum/server ... ctory.htmlGood Luck