Gzip圧縮されたSQLファイルをmysqlに直接インポートしようとしています。これは正しい方法ですか?
mysql -uroot -ppassword mydb > myfile.sql.gz
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>
は、mysql
でのstdout
コマンドの出力をファイルmyfile.sql.gz
に書き込みます。さらに、このコマンドはMySQLユーザー「root」のパスワードを要求します。
Sql.gzファイルのインポート中にプログレスバーを表示するには、pv
をダウンロードし、以下を使用します。
pv mydump.sql.gz | gunzip | mysql -u root -p <database name>
CentOS/RHELでは、yum install pv
を使用してpvをインストールできます。
Debian/Ubuntuではapt-get install pv
。
MACでは、brew install pv
最も簡単な方法は、インポートする前にデータベースファイルを解凍することです。 @ Prof。Moriarty でも言及されているように、コマンドでパスワードを指定しないでください(パスワードの入力を求められます)。 webcheatsheet から取得したこのコマンドは、データベースを一度に解凍してインポートします。
gunzip < myfile.sql.gz | mysql -u root -p mydb
zcat
からエラーが発生し、エラーメッセージに追加のサフィックス.Z
が付いたファイル名が含まれている場合は、代わりにgzcat
を使用してみてください https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly
MacOSでは、これを使用しました:
zcat < [Database].sql.gz | mysql -u root -p [Database Name in MySQL]
パスワードを入力してください。
また、SQLファイルにUSEステートメントがあるかどうかも確認してください。コマンドラインでデータベースを指定しても、SQLファイル内で別の宛先が指定されている場合、データがそこに到達することは保証されません。
bzip2圧縮ファイル(.sql.bz2)の場合、以下を使用します。
bzcat <file> | mysql -u <user> -p <database>
OR
pv <file> | bunzip2 | mysql -u <user> -p <database>
進行状況バーを表示します。
gunzip
コマンドの-c, --stdout, --to-stdout
オプションを使用できます
例えば:
gunzip -c file.sql.gz | mysql -u root -p database
.sql.qzコマンドでエクスポートするには:-
mysqldump -uユーザー名-pデータベース| gzip> database.sql.gz
.sql.qzファイルコマンドをインポートするには:
gunzip <database.sql.gz | mysql -u usrname -p newdatabase
シャイレシュタパ