web-dev-qa-db-ja.com

MySQLのコマンドラインを使用してSQLファイルをインポートする方法

phpMyAdminからエクスポートした.sqlファイルがあります。コマンドラインを使用して別のサーバーにインポートしたいです。

Windows Server 2008 R2がインストールされています。 .sqlファイルをCドライブに置いて、このコマンドを試しました

database_name < file.sql

構文エラーが出るのはうまくいきません。

  • このファイルを問題なくインポートする方法を教えてください。
  • 最初にデータベースを作成する必要がありますか?
1614
Jaylen

試してください:

mysql -u username -p database_name < file.sql

MySQLのオプションを確認してください

注1: SQLファイルfile.sqlのフルパスを使用することをお勧めします。

注2: -R--triggersを使用して、元のデータベースのルーチンとトリガを保持します。デフォルトではコピーされません。

注3 インポートする前に、mysqlから(空の)データベースを作成し、エクスポートされたSQLにCREATE DATABASEが含まれていない場合(--no-create-dbまたは-nオプションでエクスポートされる)それ。

2955
bansi

mysqldump の一般的な用途は、データベース全体のバックアップを作成することです。

Shell> mysqldump db_name > backup-file.sql

このようにダンプファイルをサーバーにロードし直すことができます。

_ unix _

Shell> mysql db_name < backup-file.sql

Windows commandでも同じです。

mysql -p -u [user] [database] < backup-file.sql

PowerShell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

MySQLコマンドライン

mysql> use db_name;
mysql> source backup-file.sql;
612
vladkras

巨大なファイルをインポートするのにかかる時間に関して:最も重要なことに、MySQLのデフォルト設定がautocommit = trueであるため、もっと時間がかかります。ファイルをインポートする前にそれをオフに設定してから、インポートがgemのようにどのように機能するかを確認する必要があります。

あなたはただ次のことをする必要があります:

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
252
Paresh Behede

すべての答えの中で、上記の問題のために、これは最良のものです:

 mysql> use db_name;
 mysql> source file_name.sql;
92
Manoj Kumar

このコマンドを使ってコマンドラインからSQLをインポートすることができます。

mysql -u username -p password db_name < file.sql

たとえば、ユーザー名がroot、パスワードがpasswordの場合です。データベース名はbank、SQLファイルはbank.sqlです。それから、単純に次のようにします。

mysql -u root -p password bank < bank.sql

SQLファイルがどこにあるかを覚えておいてください。 SQLファイルがDesktopフォルダ/ディレクトリにある場合は、デスクトップディレクトリに移動して次のようにコマンドを入力します。

~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql

あなたがProjectディレクトリにいて、SQLファイルがDesktopディレクトリにあるとします。 Projectディレクトリからアクセスしたい場合は、次のようにします。

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
60
Amrit Dhungana
  1. MySQLのコマンドラインを開く
  2. Mysqlのbinディレクトリのパスを入力してを押します。 Enter
  3. SQLファイルをmysqlサーバーのbinフォルダー内に貼り付けます。
  4. MySQLにデータベースを作成します。
  5. SQLファイルをインポートする特定のデータベースを使用してください。
  6. source databasefilename.sqlと入力して Enter
  7. SQLファイルが正常にアップロードされました。
57
user4412947

データベースがすでにある場合は、以下を使用してdumpファイルまたはsqlファイルをインポートします。

mysql -u username -p database_name < file.sql

mySQLで適切なデータベース(空)を作成する必要がない場合は、まず端末またはcmdで次のコマンドを実行してMySQLコンソールにログオンします

mysql -u userName -p;

プロンプトが表示されたらパスワードを入力します。

次にデータベースを作成して使用する

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

それからsqlまたはdumpファイルをデータベースにインポートします。

mysql> source pathToYourSQLFile;

注:端末がdumpファイルまたはsqlファイルが存在する場所にない場合は、上記の相対パスを使用してください。

44

私のために働いた解決策は以下の通りです:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
40
Shiks

MySQL実行ファイルがあるディレクトリに移動します。ユーザー名には-u、パスワードに入力を求める-pは、

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
32
Tanmay Patel

単一のデータベースをインポートするには、次のコマンドを使用します。

mysql -u username -p password dbname < dump.sql

複数のデータベースダンプをインポートするには、次のコマンドを使用します。

mysql -u username -p password < dump.sql
24
Leopathu

以下に示すようにzcatを付けて gzip(圧縮) ファイルをロードすることもできることを言及する価値があると思います。

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
23

データベースをSQLファイルにダンプするには、次のコマンドを使用します。

mysqldump -u username -p database_name > database_name.sql

SQLファイルをデータベースにインポートするには(SQLファイルと同じディレクトリにいるか、ファイルへのフルパスを指定してください)

mysql -u username -p database_name < database_name.sql
23
Adeleke Akinade
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
15
user3546602

スキーマにインポートする最も簡単な方法:

Mysqlにログインし、下記のコマンドを発行します。 

mysql> use your_db_name;

mysql> source /opt/file.sql;
15
Ammad

一度に複数のSQLファイルをインポートするには、これを使用します。

# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done

簡単なインポートの場合

# Unix-based solution
mysql -u root -pPassword DataBase < data.sql

_ wamp _ :の場合

#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql

XAMPPの場合:

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
13

.sqlファイルにCREATE DATABASE IF NOT EXISTS db_nameおよびUSE db_nameステートメントが含まれている場合は、コマンドラインでデータベースの名前を指定する必要はありません。

.sqlファイルに記載されているデータベースが存在しない場合は、データベースを作成する権限を持つユーザーと接続していることを確認してください。

12
Reuben

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

  1. ドライブに行きます。

    command: d:
    
  2. MySQLログイン

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. それはpwdを要求します。それを入力してください:

    pwd
    
  4. データベースを選択してください

    use DbName;
    
  5. ファイル名を入力してください

    \.DbName.sql
    
11

--forceオプション を追加します。

mysql -u username -p database_name --force < file.sql
9
ktaria

MySQLがあるディレクトリに移動します。

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

また、すべてのデータベースをダンプするには、-all-databasesオプションを使用すると、データベースの名前を指定する必要がなくなります。

mysqldump -u username -ppassword –all-databases > dump.sql

あるいは、SQLyogのようなGUIクライアントを使ってこれを行うこともできます。

8
Sathish D

次のコマンドは Windows 7の _ wamp _ のコマンドライン(cmd)から動作します。

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
7
victor

Mac OS X :を使っている人には便利だと思いました。

/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

xamppmampまたは他のWebサーバーに置き換えます。

7
Giri

ここでのほとんどの回答は単純なコマンドに言及しているだけです

mysql -u database_user -p [db_name] <database_file.sql

今日では、データベースとテーブルのutf8照合順序がこのコマンドでは不十分な場合、このコマンドを使用する必要があります。

mysql -u database_user -p - デフォルト文字セット= utf8 [db_name] <database_file.sql

Surleyこれは他の文字セットに対しても同様に機能します。正しい表記法をどのように示すかはここで見られます。

https://dev.mysql.com/doc/refman/5.7/en/show-collat​​ion.html

あるコメントでは、データベースが存在しない場合は空のデータベースを最初に作成する必要があるとも述べました。これは正しい場合もありますが、エクスポートファイルによって異なります。エクスポートされたファイルにデータベースを作成するためのコマンドがすでに含まれている場合は、データベースを個別の手順で作成する必要はなく、インポート時にエラーが発生する可能性もあります。そのため、インポート時にはどのコマンドがそこに含まれているのかを知るためにファイルを最初に調べることをお勧めします。

ここにリストされ、説明されているコマンドのためのさらに多くのパラメーターがあります。

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

他のデータベースバージョンを使用している場合は、対応するバージョンのマニュアルも検索することを検討してください。言及されているリンクはMySQLバージョン5.7を参照しています。

6
David
mysql -u root -p password -D database_name << import.sql

詳細についてはmysqlのヘルプを使用してくださいmysql --help

私たちの状況では、これらは有用な選択肢になると思います

[~]$ mysql --help
mysql  Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using  EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.                                                                                                                                         
Usage: mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --bind-address=name IP address to bind to.
  -D, --database=name Database to use.
  --delimiter=name    Delimiter to be used.
  --default-character-set=name Set the default character set.
  -f, --force         Continue even if we get an SQL error.
  -p, --password[=name] Password to use when connecting to server.
  -h, --Host=name     Connect to Host.
  -P, --port=#        Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
  -s, --silent        Be more silent. Print results with a tab as separator, each row on new line.
  -v, --verbose       Write more. (-v -v -v gives the table output format).
  -V, --version       Output version information and exit.
  -w, --wait          Wait and retry if connection is down.

私たちが大きなデータベースをインポートしていて、プログレスバーを持っていないならば、何が楽しいですか。パイプビューアを使用して、パイプを介したデータ転送を確認します

Macの場合はbrew install pv Debian/Ubuntuの場合はapt-get install pv。その他については http://www.ivarch.com/programs/pv.shtml を参照してください。

pv import.sql | mysql -u root -p password -D database_name

1.45GiB 1:50:07 [339.0KiB/s]   [=============>      ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s]     [=============>      ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s]     [=============>      ] 14% ETA 11:05:36
6
Siva Praveen

時には定義されたポートと同様にサーバー IPアドレス そのデータベースの/も重要です...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
5
JohnSharath

データベースが作成されなかった問題に私は走り続けた。

私はこのように修正しました

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
5

バックアップの目的で、BATファイルを作成し、 Task Scheduler を使用してこのBATファイルを実行します。データベースのバックアップを取ります。次の行をコピーして Notepad に貼り付けてから.batファイルを保存し、システム上で実行します。

@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i

"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql
5
user3728517

https://stackoverflow.com/a/17666285/1888983 と同様
私にとっての主な違い:

  1. データベースが最初に存在している必要があります
  2. -pとパスワードの間にスペースがない

Shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql

MariaDBを使ってFedora 26を実行する。

4
jozxyqk

情報として、デフォルトのroot +なしでパスワードを入力しただけなので、上記のすべての回答ではうまくいきませんでした。 

  • すべての特権とパスワードを持つ新しいユーザーを作成しました。できます。 

  • スペースなしで-ppassword。 

4
Paul Leclerc

私はWindows 10とPowershell 5を使用していますが、ほとんどすべての "unix風"のソリューションがうまく機能しないことがわかりました。

> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+                               ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported

私はこのコマンドを使用することになります。

> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]

そしてそれは完璧に機能します、うまくいけばそれは役立ちます。

@ Francesco Casulaに感謝 s answer / btw。

4
Fery Wardiyanto

以下の手順は、file.sqlをMySQLデータベースにアップロードするのに役立ちます。

ステップ1:任意のディレクトリにfile.sql.Zipをアップロードしてそこに解凍する 
Sudo apt-get install unzipSudo apt-get unzip file.sql.Zip
ステップ2:今そのディレクトリに移動します。例:cd /var/www/html

ステップ3:mysql -u username -p database-name < file.sql
パスワードを入力してアップロードが完了するまでお待ちください。

4
Ramesh Sinha

コマンドラインで資格情報を提供することはお勧めできません。上記の答えは素晴らしいですが、言及を怠る

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

Etc/myhost.cnfは、Host、user、passwordを含むファイルです。パスワードをコマンドラインで公開しないでください。これがサンプルです。

[client]
Host=hostname.domainname
user=dbusername
password=dbpassword
3
ChuckCottrill

データベースにインポートします。 - /

mysql -u username -p database_name </ファイルパス/ file_name.sql

データベースからエクスポート: -

mysqldump -u username -pデータベース名> /ファイルパス/ファイル名.sql

これらのコマンドの後でプロンプトはあなたのmysqlパスワードを尋ねます

3
NeeruSingh

データをDockerコンテナにインポートする場合は、次のコマンドを使用してください。構成に合わせて、ユーザー(-u)、データベース(-D)、ポート(-P)、およびホスト(-h)を調整します。

mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
2
Hamfri

Mac OS Xで _ mamp _ を使用している場合、これは役に立ちます。

/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql

MYSQL_USERはデフォルトでrootです。

1
HowardDuck

特定のデータベースをエクスポートします。

 djimi:> mysqldump --user=root --Host=localhost --port=3306 --password=test -B CCR KIT > ccr_kit_local.sql

これはCCRとKITデータベースをエクスポートします...

エクスポートしたデータベースをすべて特定のMySQLインスタンスにインポートします(ダンプファイルがある場所にいる必要があります)

  djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
1
Musa

buntuの場合

 mysql -u root -p
 CREATE database dbname;
 use dbname;
 source /home/computername/Downloads/merchantapp.sql
 exit;

Windowsの場合

SQLファイルをダウンロードして、C:\xampp\mysql\binに保存します。

その後、C:\xampp\mysql\binでコマンドプロンプトを開きます。

 C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql
1
Shabeer Sha

ターミナル経由でデータベースをインポートする

SQLファイルがあるフォルダに移動します。

run belowコマンド

mysql -u database_user_name -p database_name < sql_file_name.sql

パスワードを要求します。データベースのパスワードを入力してください。データベースにデータをインポートするのに数秒かかります。

1
Dev Semicolon

例えば

ソフトウェアをC:\xampp\mysql\bin にインストールしました。ファイルはC:\Users\file.sqlというアドレスにあります。

usernamedatabase_nameを設定するだけです

注:最初にデータベース(database_name)を手動で作成する必要があります

このコマンドを実行してください。

cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql

そして、パスワードを入力してください。 

1

フォルダに複数のSQLファイルがあり、 Git Bash をインストールしている場合は、このコマンドを使用して複数のファイルをインポートできます。

cd /my-project/data

cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
1

WindowsからSQLダンプからデータをインポートするために以下のコマンドを使用できます。

C:¥Program Files¥MySQL¥MySQL Server 5.7¥bin> mysql -u <> -p <> DBName <ファイルの場所\ query.sql

-uの後にユーザー名が続き、-pの後にMysqlパスワードが続きます。パスワードはプロンプトで入力できるので、コマンドでスキップすることができます。

1
Ripudaman Singh

このクエリを試すことができます。

エクスポート: mysqldump -u username –-password = your_password database_name> file.sql

インポート: mysql -u username –-password = your_password database_name <file.sql

そしてこのリンクに続く詳細:

https://chartio.com/resources/tutorials/importing-from-and-exporting-to-files-using-the-mysql-command-line/ /

1

1)wampまたはxamppディレクトリに移動します例

cd d:/wamp/bin/mysql/mysql5.7.24/bin

2)mysql -u root -p DATABASENAME <PATHYOUDATABASE_FILE

0
Naveen dev

ローカルデータベースサーバーにインポートしている場合は、次の操作を実行できます。

mysql -u database_user -p < database_file.sql

リモートデータベースサーバの場合は、次の手順に従います。

mysql -u database_user -p -h remote_server_url < database_file.sql
0

これを試して:-

C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
0
Amarat

あなたが使用することができます:

mysql -u<user> -p<pass> <db> < db.sql

例:

mysql -uroot -proot db < db.sql

さようなら!