it-swarm-vi.com

Làm cách nào để nhập tệp SQL bằng dòng lệnh trong MySQL?

Tôi có tệp .sql với bản xuất từ ​​phpMyAdmin. Tôi muốn nhập nó vào một máy chủ khác bằng dòng lệnh.

Tôi có cài đặt Windows Server 2008 R2. Tôi đã đặt tệp .sql trên ổ C và tôi đã thử lệnh này

database_name < file.sql

Nó không hoạt động tôi nhận được lỗi cú pháp.

  • Làm thế nào tôi có thể nhập tệp này mà không có vấn đề?
  • Tôi có cần tạo cơ sở dữ liệu trước không?
1511
Jaylen

Thử:

mysql -u username -p database_name < file.sql

Kiểm tra Tùy chọn MySQL .

Lưu ý-1 : Tốt hơn là sử dụng đường dẫn đầy đủ của tệp SQL file.sql.

Lưu ý-2 : Sử dụng -R--triggers để giữ các thói quen và kích hoạt cơ sở dữ liệu gốc. Chúng không được sao chép theo mặc định.

Lưu ý-3 Bạn có thể phải tạo cơ sở dữ liệu (trống) từ mysql nếu nó chưa tồn tại và SQL đã xuất không chứa CREATE DATABASE (xuất với tùy chọn --no-create-db hoặc -n) nó.

2955
bansi

Việc sử dụng phổ biến của mysqldump là để tạo bản sao lưu toàn bộ cơ sở dữ liệu:

Shell> mysqldump db_name > backup-file.sql

Bạn có thể tải tệp kết xuất trở lại máy chủ như thế này:

UNIX

Shell> mysql db_name < backup-file.sql

Tương tự trong lệnh Windows Nhắc:

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

PowerShell

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

Dòng lệnh MySQL

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

Về thời gian để nhập các tệp lớn: quan trọng nhất là mất nhiều thời gian hơn vì cài đặt mặc định của MySQL là autocommit = true. Bạn phải tắt nó trước khi nhập tệp của mình và sau đó kiểm tra cách nhập hoạt động như một viên ngọc.

Bạn chỉ cần làm những điều sau đây:

mysql> use db_name;

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

Trong số tất cả các câu trả lời, cho vấn đề trên, đây là câu trả lời hay nhất:

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

Chúng ta có thể sử dụng lệnh này để nhập SQL từ dòng lệnh:

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

Ví dụ: nếu tên người dùng là root và mật khẩu là password. Và bạn có tên cơ sở dữ liệu là bank và tệp SQL là bank.sql. Sau đó, chỉ cần làm như thế này:

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

Hãy nhớ nơi tập tin SQL của bạn. Nếu tệp SQL của bạn nằm trong thư mục/thư mục Desktop thì hãy vào thư mục máy tính để bàn và nhập lệnh như sau:

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

Và nếu bạn đang ở trong thư mục Project và tệp SQL của bạn nằm trong thư mục Desktop. Nếu bạn muốn truy cập nó từ thư mục Project thì bạn có thể làm như thế này:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
60
Amrit Dhungana
  1. Mở dòng lệnh MySQL
  2. Nhập đường dẫn của thư mục bin mysql của bạn và nhấn Enter
  3. Dán tệp SQL của bạn vào thư mục bin của máy chủ mysql.
  4. Tạo một cơ sở dữ liệu trong MySQL.
  5. Sử dụng cơ sở dữ liệu cụ thể mà bạn muốn nhập tệp SQL.
  6. Nhập source databasefilename.sql và Enter
  7. Tải lên tệp SQL của bạn thành công.
57
user4412947

Nếu bạn đã có cơ sở dữ liệu, hãy sử dụng cách sau để nhập tệp dump hoặc tệp sql

mysql -u username -p database_name < file.sql

nếu bạn không cần phải tạo cơ sở dữ liệu có liên quan (trống) trong MySQL, thì lần đầu tiên đăng nhập vào bảng điều khiển MySQL bằng cách chạy lệnh sau trong terminal hoặc trong cmd

mysql -u userName -p;

và khi được nhắc cung cấp mật khẩu.

Tiếp theo tạo một cơ sở dữ liệu và sử dụng nó

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Sau đó nhập tệp sql hoặc tệp dump vào cơ sở dữ liệu từ

mysql> source pathToYourSQLFile;

Lưu ý: nếu thiết bị đầu cuối của bạn không ở vị trí tồn tại tệp dump hoặc sql, hãy sử dụng đường dẫn tương đối ở trên.

44

Một giải pháp hiệu quả với tôi là dưới đây:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
40
Shiks

Chuyển đến thư mục nơi bạn có thể thực thi MySQL. -u cho tên người dùng và -p để Nhắc mật khẩu:

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

Để nhập một cơ sở dữ liệu, sử dụng lệnh sau.

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

Để nhập nhiều bãi chứa cơ sở dữ liệu, sử dụng lệnh sau.

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

Tôi nghĩ rằng điều đáng nói là bạn cũng có thể tải tệp gzipped (đã nén) với zcat như hiển thị bên dưới:

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

Để kết xuất cơ sở dữ liệu vào tệp SQL, sử dụng lệnh sau

mysqldump -u username -p database_name > database_name.sql

Để nhập tệp SQL vào cơ sở dữ liệu (đảm bảo bạn đang ở cùng thư mục với tệp SQL hoặc cung cấp đường dẫn đầy đủ đến tệp)

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

Cách dễ nhất để nhập vào lược đồ của bạn:

Đăng nhập vào mysql và phát hành các lệnh dưới đây. 

mysql> use your_db_name;

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

Để nhập nhiều tệp SQL cùng một lúc, hãy sử dụng:

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

Để nhập đơn giản:

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

Dành cho ƯỚT :

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

Đối với XAMPP:

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

Bạn không cần chỉ định tên của cơ sở dữ liệu trên dòng lệnh nếu tệp .sql chứa các câu lệnh CREATE DATABASE IF NOT EXISTS db_nameUSE db_name.

Chỉ cần đảm bảo rằng bạn đang kết nối với người dùng có quyền tạo cơ sở dữ liệu, nếu cơ sở dữ liệu được đề cập trong tệp .sql không tồn tại.

12
Reuben

Nhập cơ sở dữ liệu

  1. Đi đến ổ đĩa:

    command: d:
    
  2. Đăng nhập MySQL

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Nó sẽ yêu cầu pwd. Nhập nó:

    pwd
    
  4. Chọn cơ sở dữ liệu

    use DbName;
    
  5. Cung cấp tên tệp

    \.DbName.sql
    
11
Pritam Chaudhari

Thêm tùy chọn --force :

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

Chuyển đến thư mục mà bạn có MySQL.

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

Ngoài ra để kết xuất tất cả các cơ sở dữ liệu, hãy sử dụng tùy chọn -all-databases và không cần chỉ định tên cơ sở dữ liệu nữa.

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

Hoặc bạn có thể sử dụng một số máy khách GUI như SQLyog để làm điều này.

8
Sathish D

Lệnh sau hoạt động với tôi từ dòng lệnh (cmd) trên Windows 7 trên WAMP .

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

Tôi nghĩ rằng nó có thể hữu ích cho những người đang sử dụng Mac OS X :

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

Thay thế xampp bằng mamp hoặc các máy chủ web khác.

7
Giri

Trong khi hầu hết các câu trả lời ở đây chỉ đề cập đến lệnh đơn giản

mysql -u cơ sở dữ liệu_user -p [db_name] <cơ sở dữ liệu_file.sql

ngày nay khá phổ biến là cơ sở dữ liệu và bảng có đối chiếu utf8 trong đó lệnh này không đủ . Có đối chiếu utf8 trong các bảng đã xuất, cần phải sử dụng lệnh này:

mysql -u cơ sở dữ liệu_user -p --default-character-set = utf8 [db_name] <database_file.sql

Surley này cũng hoạt động cho các bộ ký tự khác, làm thế nào để hiển thị ký hiệu đúng có thể được nhìn thấy ở đây:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

Một bình luận cũng đề cập rằng nếu cơ sở dữ liệu không bao giờ tồn tại thì cơ sở dữ liệu trống phải được tạo trước tiên. Điều này có thể đúng trong một số trường hợp, nhưng phụ thuộc vào tệp xuất. Nếu tệp đã xuất đã bao gồm lệnh tạo cơ sở dữ liệu thì cơ sở dữ liệu không bao giờ phải được tạo trong một bước riêng biệt, thậm chí có thể gây ra lỗi khi nhập. Vì vậy, khi nhập, bạn nên xem trước trong tệp để biết các lệnh được đưa vào đó, khi xuất, bạn nên lưu ý các cài đặt, đặc biệt nếu tệp rất lớn và khó đọc trong trình chỉnh sửa.

Vẫn còn nhiều tham số cho lệnh được liệt kê và giải thích ở đây:

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

Nếu bạn sử dụng phiên bản cơ sở dữ liệu khác, hãy cân nhắc tìm kiếm phiên bản tương ứng của hướng dẫn sử dụng. Các liên kết được đề cập đề cập đến phiên bản MySQL 5.7.

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

Sử dụng trợ giúp mysql để biết chi tiết mysql --help

Tôi nghĩ rằng đây sẽ là những lựa chọn hữu ích trong bối cảnh của chúng tôi

[~]$ 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.

có gì vui, nếu chúng ta đang nhập một cơ sở dữ liệu lớn và không có thanh tiến trình. Sử dụng Trình xem ống và xem truyền dữ liệu qua đường ống

Đối với Mac, brew install pv. Đối với Debian/Ubuntu, apt-get install pv. Những người khác, hãy tham khảo 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

Đôi khi cổng được xác định cũng như máy chủ địa chỉ IP của cơ sở dữ liệu đó cũng có vấn đề ...

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

Tôi tiếp tục gặp vấn đề trong đó cơ sở dữ liệu không được tạo.

Tôi đã sửa nó như thế này

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

Đối với mục đích sao lưu, tạo tệp BAT và chạy tệp BAT này bằng cách sử dụng Trình lập lịch tác vụ . Nó sẽ sao lưu cơ sở dữ liệu; chỉ cần sao chép dòng sau và dán vào Notepad và sau đó lưu tệp .bat và chạy nó trên hệ thống của bạn.

@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

Tương tự như https://stackoverflow.com/a/17666285/1888983
Sự khác biệt chính đối với tôi:

  1. Cơ sở dữ liệu phải tồn tại trước
  2. Không có khoảng cách giữa -p và mật khẩu

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

Chạy Fedora 26 với MariaDB.

4
jozxyqk

Để biết thông tin tôi chỉ có root + withoutpassword mặc định, nó không hoạt động với tất cả các câu trả lời ở trên. 

  • Tôi đã tạo một người dùng mới với tất cả các đặc quyền và mật khẩu. Nó hoạt động. 

  • -ppassword KHÔNG CÓ KHÔNG GIAN. 

4
Paul Leclerc

Tôi đang sử dụng Windows 10 với Powershell 5 và tôi thấy hầu hết các giải pháp "giống như unix" không hoạt động với tôi.

> 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

Tôi kết thúc bằng cách sử dụng lệnh này.

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

và nó hoạt động hoàn hảo, hy vọng nó sẽ giúp.

Cảm ơn @ Francesco Casula 's trả lời btw.

4
Fery Wardiyanto

Các bước sau đây để tải lên file.sql vào cơ sở dữ liệu MySQL.

Bước 1: Tải lên file.sql.Zip vào bất kỳ thư mục nào và giải nén tại đó 
Lưu ý : Sudo apt-get install unzip: Sudo apt-get unzip file.sql.Zip
Bước 2: Bây giờ điều hướng đến thư mục đó. Ví dụ: cd /var/www/html

Bước 3: mysql -u username -p database-name < file.sql
Nhập mật khẩu và đợi cho đến khi tải lên hoàn tất.

4
Ramesh Sinha

Cung cấp thông tin đăng nhập trên dòng lệnh không phải là một ý tưởng tốt. Các câu trả lời trên là tuyệt vời, nhưng bỏ qua đề cập đến

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

Trong đó, v.v. Đây là một mẫu,

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

Nhập vào cơ sở dữ liệu: -

mysql -u tên người dùng -p cơ sở dữ liệu </ đường dẫn tệp/file_name.sql

Xuất từ ​​cơ sở dữ liệu: -

mysqldump -u tên người dùng -p cơ sở dữ liệu_name>/đường dẫn tệp/file_name.sql

sau những lệnh này, Prompt sẽ hỏi mật khẩu mysql của bạn

3
NeeruSingh

Nếu nhập dữ liệu vào bộ chứa docker, hãy sử dụng lệnh sau. Điều chỉnh người dùng (-u), cơ sở dữ liệu (-D), cổng (-P) và Máy chủ (-h) để phù hợp với cấu hình của bạn.

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

Nếu bạn đang sử dụng MAMP trên Mac OS X, điều này có thể hữu ích:

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

MYSQL_USER là root theo mặc định.

1
HowardDuck

Xuất cơ sở dữ liệu cụ thể:

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

Điều này sẽ xuất cơ sở dữ liệu CCR và KIT ...

Nhập tất cả các cơ sở dữ liệu đã xuất sang một phiên bản MySQL cụ thể (bạn phải ở nơi tệp kết xuất của bạn):

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

Trong Ubunt

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

Trong Windows

Tải xuống tệp SQL và lưu nó trong C:\xampp\mysql\bin.

Sau đó, mở lệnh Nhắc với C:\xampp\mysql\bin:

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

Để nhập cơ sở dữ liệu qua thiết bị đầu cuối

Điều hướng đến thư mục chứa tập tin sql

lệnh chạy bên dưới

mysql -u database_user_name -p database_name < sql_file_name.sql

Nó sẽ hỏi mật khẩu. nhập mật khẩu cơ sở dữ liệu. Sẽ mất vài giây để nhập dữ liệu trong cơ sở dữ liệu.

1
Dev Semicolon

Ví dụ

Tôi đã cài đặt phần mềm trên C:\xampp\mysql\bin Và tệp của tôi ở địa chỉ C:\Users\file.sql

Chỉ cần đặt usernamedatabase_name

Lưu ý: Trước tiên, bạn cần tạo cơ sở dữ liệu (database_name) theo cách thủ công

Chạy lệnh này:

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

Và sau đó nhập mật khẩu ???? 

1
Mahdi Bashirpour

Nếu thư mục của bạn có nhiều tệp SQL và bạn đã cài đặt Git Bash bạn có thể sử dụng lệnh này để nhập nhiều tệp:

cd /my-project/data

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

Từ cửa sổ, bạn có thể sử dụng lệnh bên dưới để nhập dữ liệu từ kết xuất sql

C:\Tệp chương trình\MySQL\MySQL Server 5.7\bin> mysql -u <> -p <> DBName <filelocation\query.sql

trong đó -u theo sau là tên người dùng và -p theo sau là mật khẩu Mysql. Mật khẩu có thể được bỏ qua trong lệnh vì nó có thể được nhập vào Nhắc.

1
Ripudaman Singh

Bạn có thể thử truy vấn này.

Xuất khẩu: Mysqldump -u tên người dùng Mạnh-password = your_password cơ sở dữ liệu

Nhập: Mysql -u tên người dùng mật khẩu-password = your_password database_name <file.sql

và chi tiết theo liên kết này:

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

1
Md Shariful Islam

1) Chuyển đến thư mục wamp hoặc xampp của bạn Ví dụ

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

2) mysql -u root -p DATABASENAME <PATHYOUDATABASE_FILE

0
Naveen dev

Nếu bạn đang nhập vào máy chủ cơ sở dữ liệu cục bộ của mình, bạn có thể thực hiện các thao tác sau:

mysql -u database_user -p < database_file.sql

Đối với máy chủ cơ sở dữ liệu từ xa làm follwing:

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

Thử đi:-

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

Bạn có thể dùng:

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

thí dụ:

mysql -uroot -proot db < db.sql

tạm biệt!