1. ホーム
  2. mysql

[解決済み] コマンドラインから mysql データベースをプレーンテキスト (CSV) にダンプしてバックアップする。

2023-01-12 03:37:03

質問

mysqldumpはmysqlが読むのに便利な形式でしか出力しないので避けたいのですが。 CSV の方がより普遍的なようです(1 テーブルにつき 1 ファイルで大丈夫です)。 しかし、mysqldumpの利点があるのなら、私はすべてを聞いています。 あと、コマンドライン(linux)から実行できるものがいいです。 それがmysqlスクリプトであれば、そのようなものを作る方法へのポインタが役に立ちます。

どのように解決するのですか?

テーブル・アット・ア・タイムに対応でき、データがバイナリでなければ -B オプションを mysql コマンドに追加します。 このオプションを使用すると、Excel などに簡単にインポートできる TSV (タブ区切り) ファイルが生成されます。

% echo 'SELECT * FROM table' | mysql -B -uxxx -pyyy database

また、サーバーのファイルシステムに直接アクセスできる場合は SELECT INTO OUTFILE を使うことで、本当の CSV ファイルを生成することができます。

SELECT * INTO OUTFILE 'table.csv'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
FROM table