2012-08-16 33 views
15

私たちのMySQLクエリは、一時的なテーブルを使用してプロセス内に一時ファイルを作成します。現在、ファイルは/ tmpに書き込まれます。 mysqlが書き込む一時フォルダのパスはどのくらい正確に変更できますか?mysqlのtmpフォルダを変更する

答えて

2

これは文書で回答されています。Unixでは

Where MySQL Stores Temporary Files

、MySQLは一時ファイルを格納するディレクトリの パス名としてTMPDIR環境変数の値を使用しています。 TMPDIRが設定されていない場合、MySQLはシステムデフォルト(通常 /tmp、/ var/tmp、/ usr/tmp)を使用します。

Windowsでは、NetwareとOS2は、 TMPDIR、TEMP、およびTMP環境変数の値を順にチェックします。最初に が設定されていると、MySQLはそれを使用し、残っているものはチェックしません。 TMPDIR、TEMP、またはTMPのどれも が設定されていない場合、MySQLはWindowsシステム (通常はC:\ windows \ temp)を使用します。

+6

は、他の回答は、彼らがMySQLの設定ファイルではなく、環境変数に依存 'tmpdir'を設定する方法を説明しますので、はるかに優れています。 – rinogo

34

あなたのmy.cnf

tmpdir = /whatewer/you/want 

とその再起動mysqlの後

P.S.を編集する必要がありますmysqlユーザここ

25

ため/whatewer/you/wantに書き込み権限を与えることを忘れないでください、すでにUbuntuの13.04上に存在し、tmpfsの(メモリ/ RAM)で実行します/ mysqldを/に/ tmpのからのmysqld TMPDIRを移動する例です。

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

追加:次に

[mysqld] 
tmpdir = /run/mysqld 

​​

最終:

SHOW VARIABLES LIKE 'tmpdir'; 

===========================================あなたがMySQLの再起動時にエラーが発生した場合=======================

、あなたはAppArmorのが有効になっていることがあります。

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

追加します:次に

# 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, 

sudo service apparmor reload 

ソース:http://2bits.com/articles/reduce-your-servers-resource-usage-moving-mysql-temporary-directory-ram-disk.htmlhttps://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql

関連する問題