2012-08-16 6 views
15

Unsere Mysql-Abfragen verwenden temporäre Tabellen, die temporäre Dateien im Prozess erstellen. Derzeit werden die Dateien nach/tmp geschrieben. Wie genau kann der Pfad des Temp-Ordners, in den mysql schreibt, geändert werden? Ändern des tmp-Ordners von mysql

Antwort

2

Dies wird in der Dokumentation beantwortet:

Where MySQL Stores Temporary Files

Unter Unix MySQL verwendet den Wert der Umgebungsvariable TMPDIR als die Pfadnamen des Verzeichnisses, in der temporären Dateien zu speichern. Wenn TMPDIR nicht festgelegt ist, verwendet MySQL den Systemstandard, normalerweise /tmp,/var/tmp oder/usr/tmp.

Unter Windows, Netware und OS2 überprüft MySQL die Werte der Umgebungsvariablen TMPDIR, TEMP und TMP . Für den ersten gefunden gesetzt, verwendet MySQL es und überprüft nicht die verbleibenden. Wenn keine von TMPDIR, TEMP oder TMP festgelegt sind, verwendet MySQL das Windows-System standardmäßig, die in der Regel C: \ windows \ temp ist.

+6

Die anderen Antworten sind viel besser, da sie erklären, wie 'tmpdir' in der MySQL-Konfigurationsdatei unter Berufung auf Umgebungsvariablen statt einzustellen. – rinogo

34

Sie sollten Ihre my.cnf

tmpdir = /whatewer/you/want 

und nach dem Neustart mysql

P. S. bearbeiten Vergessen Sie nicht, Schreibzugriff auf /whatewer/you/want für MySQL-Benutzer

25

Hier ist ein Beispiel geben die mysqld tmpdir von/tmp/run/mysqld zu bewegen, die bereits existiert auf Ubuntu 13.04 und ist ein tmpfs (Speicher/ram):

sudo vim /etc/mysql/conf.d/local.cnf 

Anzahl:

[mysqld] 
tmpdir = /run/mysqld 

Dann:

sudo service mysql restart 

Last:

SHOW VARIABLES LIKE 'tmpdir'; 

=========================================== =======================

Wenn Sie einen Fehler auf MySQL Neustart erhalten, müssen Sie AppArmor aktiviert:

sudo vim /etc/apparmor.d/local/usr.sbin.mysqld 

hinzufügen :

# Site-specific additions and overrides for usr.sbin.mysqld. 
# For more details, please see /etc/apparmor.d/local/README. 
/run/mysqld/ r, 
/run/mysqld/** rwk, 

Dann:

sudo service apparmor reload 

Quellen: http://2bits.com/articles/reduce-your-servers-resource-usage-moving-mysql-temporary-directory-ram-disk.html, https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql