MySQLデータディレクトリを900GBの別の(そしてより大きな)ディスクにマッピングしました
[root@web ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G 24G 14G 64% /
tmpfs 7.4G 0 7.4G 0% /dev/shm
/dev/xvdb1 886G 658G 184G 79% /mnt/cbsvolume1
/ tmpは小さい方の40GBディスクにあります
[root@web ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G 24G 14G 64% /
MySQLが/ tmpディレクトリを使用しているようです。そのため、大きなMySQL操作を実行しようとすると、ディスク領域が不足することがあります。
/tmp
を変更して、より大きなディスクも使用するにはどうすればよいですか?
私の知る限り、/tmp
の内容は再起動時に削除されます。
ただし、あなたの場合は、次の場所でTMPDIR
環境変数を変更/追加してみてください。
/etc/mysql/conf.d/local.cnf
TMPDIR環境変数を、より多くのディスク容量を持つファイルシステム/ディレクトリに変更します。
ローカル構成ファイルを編集します/etc/mysql/conf.d/local.cnf
。このファイルにはローカルの変更が含まれており、mysqlをアップグレードしても上書きされません。構成ファイルは別の場所に保存される場合があることに注意してください。findを使用して、デフォルトの構成ファイルmy.cnfを見つけます。通常、local.cnfは同じディレクトリに保存されます。
Sudo find / -name my.cnf # look for path of config files
Local.cnfを編集します。例: Sudo vi /etc/mysql/conf.d/local.cnf
これらの行をlocal.cnfに追加します。
[mysqld]
tmpdir = /your/newpath
次に、mysqlを再起動します。
MySQL ドキュメントから:
B.5.4.4 MySQLが一時ファイルを保存する場所
Unixでは、MySQLはTMPDIR環境変数の値を一時ファイルを保存するディレクトリのパス名として使用します。 TMPDIRが設定されていない場合、MySQLはシステムのデフォルト(通常は/ tmp、/ var/tmp、または/ usr/tmp)を使用します。