69

sql.gzSSHを使用してデータベースにファイルを挿入したい。私は何をすべきか?

たとえば、名前がnumbers.sql.gzである電話番号のデータベースがあります。このタイプのファイルとは何ですか。また、このファイルをデータベースにインポートするにはどうすればよいですか。

4

8 に答える 8

128

puttyなどのシェルプログラムを使用してサーバーにログインします。

コマンドラインで次のコマンドを入力します

zcat DB_File_Name.sql.gz | mysql -u username -p Target_DB_Name

どこ

DB_File_Name.sql.gz=インポートするsql.gzファイルのフルパス

username=あなたのmysqlユーザー名

Target_DB_Name=データベースをインポートするデータベース名

コマンドラインでEnterキーを押すと、パスワードの入力を求められます。MySQLパスワードを入力します。

これで完了です。

于 2012-08-16T12:54:36.047 に答える
58

このファイルはgzip圧縮された(圧縮された)SQLファイルであり、ほとんどの場合、拡張子が.sqlのプレーンテキストファイルです。最初に行う必要があるのは、scpを介してファイルをデータベースサーバーにコピーすることです。PuTTYはpscp.exeだと思います。

# Copy it to the server via pscp
C:\> pscp.exe numbers.sql.gz user@serverhostname:/home/user

次に、サーバーにSSHで接続し、次のコマンドでファイルを解凍します。gunzip

user@serverhostname$  gunzip numbers.sql.gz
user@serverhostname$  ls 

numbers.sql

<最後に、入力リダイレクト演算子を使用してMySQLデータベースにインポートします。

user@serverhostname$  mysql -u mysqluser -p < numbers.sql

numbers.sqlファイルがデータベースを作成しないが、データベースがすでに存在することを期待している場合は、コマンドにデータベースも含める必要があります。

user@serverhostname$  mysql -u mysqluser -p databasename < numbers.sql

外部からMySQLサーバーに直接接続できる場合は、コピーしてSSHで接続する代わりに、ローカルのMySQLクライアントを使用できます。その場合、Windowsで.gzファイルを解凍できるユーティリティが必要です。7zipがそうするか、Windows用のgzip/gunzipバイナリを入手できると思います。

于 2012-06-10T19:53:48.903 に答える
54

アーカイブを抽出するための個別の手順がない場合:

# import gzipped-mysql dump
gunzip < DUMP_FILE.sql.gz | mysql --user=DB_USER --password DB_NAME

上記のスニペットを使用してmysqldump-backupsを再インポートし、以下を使用してバックアップします。

# mysqldump and gzip (-9 ≃ highest compression)
mysqldump --user=DB_USER --password DB_NAME | gzip -9 > DUMP_FILE.sql.gz
于 2012-06-10T19:57:43.990 に答える
4

ワンライナーの場合、Linuxまたはcygwinでは、ホストで公開鍵認証を行う必要があります。そうしないと、sshがパスワードを要求します。


gunzip -c numbers.sql.gz | ssh user@host mysql --user=user_name --password=your_password db_name

または、ポートフォワーディングを実行し、「ローカル」接続を使用してリモートmysqlに接続します。

ssh -L some_port:host:local_mysql_port user@host

次に、ローカルマシンでlocalhost:some_portへのmysql接続を実行します。

ポートフォワーディングは、同様の-Lオプションを使用してパテからも機能します。または、ツリーのどこかにある設定パネルから構成することもできます。

于 2012-06-10T20:46:08.353 に答える
2

あなたがscpを持っているなら:

ファイルをローカルからリモートに移動するには:

$scp /home/user/file.gz user@ipaddress:path/to/file.gz 

ファイルをリモートからローカルに移動するには:

$scp user@ipaddress:path/to/file.gz /home/user/file.gz

リモートシステムにログインせずにmysqlファイルをエクスポートするには:

$mysqldump -h ipaddressofremotehost -Pportnumber -u usernameofmysql -p  databasename | gzip -9 > databasename.sql.gz

ログインせずにmysqlファイルをリモートシステムにインポートするには:

$gunzip < databasename.sql.gz | mysql -h ipaddressofremotehost -Pportnumber -u usernameofmysql -p 

注:リモートホストのIPアドレスにネットワークアクセスできることを確認してください

ネットワークアクセスを確認するには:

$ping ipaddressofremotehost
于 2016-02-18T02:11:00.220 に答える
0

多くのデータベースがインポートされ、ダンプが大きい場合(私は、数ギガバイトのGzip圧縮されたダンプを使用することがよくあります)。

ここにmysql内でそれを行う方法があります。

$ mkdir databases
$ cd databases
$ scp user@orgin:*.sql.gz .  # Here you would just use putty to copy into this dir.
$ mkfifo src
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.41-0
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database db1;
mysql> \! ( zcat  db1.sql.gz > src & )
mysql> source src
.
.
mysql> create database db2;
mysql> \! ( zcat  db2.sql.gz > src & )
mysql> source src

これが持つ唯一の利点

zcat db1.sql.gz | mysql -u root -p 

パスワードを何度も入力しなくても、簡単に複数の操作を実行できるということです。

于 2015-02-19T13:48:33.083 に答える
0

mysqlダンプが.gzファイルの場合は、$ gunzip mysqldump.sql.gzと入力して、ファイルを解凍するためにgunzipする必要があります。

これにより、.gzファイルが解凍され、mysqldump.sqlが同じ場所に保存されます。

次のコマンドを入力して、SQLデータファイルをインポートします。

$ mysql -u username -p -h localhost test-database <mysqldump.sql password:_

于 2018-01-22T07:17:14.057 に答える
0

現在のサーバーにダンプファイルSQL.gzを作成する

$ sudo apt-get install pigz pv

$ pv | mysqldump --user=<yourdbuser> --password=<yourdbpassword> <currentexistingdbname> --single-transaction --routines --triggers --events --quick --opt -Q --flush-logs --allow-keywords --hex-blob --order-by-primary --skip-comments --skip-disable-keys --skip-add-locks --extended-insert --log-error=/var/log/mysql/<dbname>_backup.log | pigz > /path/to/folder/<dbname>_`date +\%Y\%m\%d_\%H\%M`.sql.gz

オプション:接続用のコマンド引数

--host=127.0.0.1 / localhost / IP Address of the Dump Server
--port=3306

上で作成したダンプファイルを別のサーバーにインポートする

$ sudo apt-get install pigz pv

$ zcat /path/to/folder/<dbname>_`date +\%Y\%m\%d_\%H\%M`.sql.gz | pv | mysql --user=<yourdbuser> --password=<yourdbpassword> --database=<yournewdatabasename> --compress --reconnect --unbuffered --net_buffer_length=1048576 --max_allowed_packet=1073741824 --connect_timeout=36000 --line-numbers --wait --init-command="SET GLOBAL net_buffer_length=1048576;SET GLOBAL max_allowed_packet=1073741824;SET FOREIGN_KEY_CHECKS=0;SET UNIQUE_CHECKS = 0;SET AUTOCOMMIT = 1;FLUSH NO_WRITE_TO_BINLOG QUERY CACHE, STATUS, SLOW LOGS, GENERAL LOGS, ERROR LOGS, ENGINE LOGS, BINARY LOGS, LOGS;"

オプション:接続用のコマンド引数

--host=127.0.0.1 / localhost / IP Address of the Import Server
--port=3306

mysql:[警告]コマンドラインインターフェイスでのパスワードの使用は安全でない可能性があります。1.0GiB 00:06:51 [8.05MiB / s] [<=>]

オプションのソフトウェアパッケージは、データベースのSQLファイルをより高速にインポートするのに役立ちます

  • プログレスビュー付き(pv)
  • 並列gzip(pigz / unpigz)からgzip/gunzipファイルへの並列

出力をより速く圧縮するため

于 2019-01-02T22:48:26.157 に答える