4

バックグラウンド

これらのhddパーティションを持つmysqlサーバーで作業しています:

...
/dev/vdd       99G     58G   39G   61% /var/lib/mysql
tmpfs         2,4G       0  2,4G    0% /tmp
...

データベースに mysql ダンプをインポートする必要があります。したがって、次の構文を使用します。

gunzip -c sql_dump.sql.gz | mysql -uDB_USER -p DB_NAME

一般的にはこれでうまくいきますが、解凍すると私のsql_dump.sql.gzファイルは 5GB を超えます。

上記のコマンドは で失敗しgzip: /home/.../sql_dump.sql.gz: No space left on deviceます。mysqlこれは、十分なスペースがある/tmpパーティションではなく、2.4GB しか空きがないパーティションに関係していると思います。

今のところ、/var/lib/mysql十分な空き容量があるパーティションにファイルを移動しました。そこに私のファイルをgunzipし、mysqlのインポートを開始し、その後圧縮ファイルと非圧縮ファイルを削除しました。

質問

gunzipデフォルトの一時的なターゲットの場所を一時的に強制的に変更する方法があるかどうかを自問していました。これは/tmp/デフォルトです。そのため、抽出されたgunzip -c sql_dump.sql.gz | ...ファイルは下に保存されませんが、ファイルの抽出中は/tmp/下に保存され/var/lib/mysqlます。このようなもの:

export "GZIP_TMP_DIR=/var/lib/mysql/"
gunzip -c sql_dump.sql.gz | mysql -uDB_USER -p DB_NAME

これは可能ですか?私はたくさん検索しましたが、この特定のニーズを解決するものは何も見つかりませんでした.

4

1 に答える 1