Câu hỏi Làm thế nào để nhập khẩu một tập tin SQL bằng cách sử dụng dòng lệnh trong MySQL?


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

tôi có một Windows Server 2008 R2 cài đặt. Tôi đã đặt .sql tập tin trên Ổ Cvà tôi đã thử lệnh này

database_name < file.sql

Nó không phải là làm việc 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 gặp sự cố?
  • Tôi có cần tạo cơ sở dữ liệu trước không?

1314
2017-07-16 00:43


gốc


có thể trùng lặp Khôi phục tệp kết xuất tệp MYSQL bằng dòng lệnh - Bill Karwin
có thể trùng lặp stackoverflow.com/questions/11407349/… - AZinkey
Whats với những kẻ trùng lặp? Đây thực sự là một câu hỏi hữu ích với mục đích riêng của nó - Valentino Pereira


Các câu trả lời:


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 và --triggers để giữ thói quen và kích hoạt của cơ sở dữ liệu gốc. Chúng không được sao chép theo mặc định.


2573
2017-07-16 00:48



Khi tôi chạy các tập tin từ một chương trình như Toad tôi nhận được không có lỗi nhưng khi tôi chạy nó từ dòng lệnh tôi nhận được lỗi tôi đã đề cập - Jaylen
Lưu ý rằng có, bạn phải tạo cơ sở dữ liệu (trống) từ mysql nếu nó không tồn tại, trước khi bạn có thể nhập nó. - Skippy le Grand Gourou
Yups, hãy nhớ tạo một cơ sở dữ liệu rỗng (nếu db không tồn tại trước đó), từ bảng điều khiển MySQL như sau: CREATE DATABASE db-name; - Qasim
Hãy chắc chắn để kiểm tra xem tập tin sao lưu không có "sử dụng" original_db '"trong đó. Mặc dù tôi đã chỉ định khôi phục DB mới "mysql new_db <dump.sql", tệp kết xuất sql đã có trong đó và nó ghi đè lên DB trực tiếp của tôi. Không chắc chắn nếu có một tùy chọn để buộc nó sử dụng DB được chỉ định và bỏ qua "use 'original_db'" trong tệp sql - Shaakir
@ Joe, vâng, nếu bạn có một khoảng trống giữa '-p' và 'mật khẩu', nó nghĩ rằng 'mật khẩu' là tên cơ sở dữ liệu. Ngoài ra, bạn có thể nhập '-p' không có mật khẩu của mình và sau đó bạn sẽ được nhắc nhập mật khẩu khi bạn nhấn enter. - NotJay


Một sử dụng phổ biến của mysqldump là để tạo bản sao lưu của 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 vào máy chủ như sau:

UNIX

shell> mysql db_name < backup-file.sql

Tương tự trong các cửa sổ dấu nhắc lệnh:

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;

526
2017-07-16 00:48



@Mike Bạn đang cố gắng khởi chạy nó trong mysql> dòng lệnh? Bạn nên sử dụng shell thay vào đó. - vladkras
Làm cách nào để sử dụng Shell? Tôi đang sử dụng mysql5.6 trên windows Server 2008 - Jaylen
Sử dụng Windows PowerShell gõ MySQL db_name <file.sql Tôi nhận được lỗi sau, toán tử '<' được sử dụng trong tương lai - Jaylen
Jackie  tư vấn  & cmd.exe /c "mysql -u root -p Tutorials < tut_backup.sql" - vladkras
Hãy cẩn thận về việc sử dụng> để chuyển hướng đầu ra mysqldump vào một tệp, đặc biệt nếu bạn muốn kiểm soát mã hóa. Thay vào đó, bạn có thể muốn sử dụng tham số -result-file để mã hóa không được kiểm soát bởi shell / OS. - Bernard Chen


Về thời gian để nhập các tệp lớn: quan trọng nhất, phải 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 thiết lập nó trước khi nhập tệp của bạn 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 điều sau đây:

mysql> use db_name;

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

215
2018-04-04 06:47



Có cách nào để làm điều đó trong một dòng lệnh trên lệnh mysql được sử dụng để nhập khẩu? - Volomike
Câu trả lời hay nhất. Đó là source lệnh tôi đã quên. Hầu hết chúng ta muốn làm điều này trong khi chúng ta là đăng nhập như là lệnh độc lập giữa các lệnh khác, không phải đăng nhập chuẩn> inject> logout oneliner ở trên cùng của google serps. - davidkonrad
Tôi đồng ý rằng đây là câu trả lời hay nhất. Các autocommit=0 phần tạo ra một thế giới khác biệt về tốc độ. - aexl
sẽ là autocommit=0 sẽ hoạt động trên các tệp lớn hơn? như tệp sql 8gb. - newbie
Không phải lúc nào cũng cần phải tắt autocommit. Nó đáng để kiểm tra kết xuất cơ sở dữ liệu trong một trình soạn thảo, nó có thể đã bắt đầu với SET autocommit=0;. - hashchange


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;

70
2017-08-18 12:12





Chúng ta có thể sử dụng lệnh này để import 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ớ vị trí tệp SQL của bạn. Nếu tệp SQL của bạn nằm trong Desktop thư mục / thư mục sau đó vào thư mục trên 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 Project thư mục và tệp SQL của bạn nằm trong Desktop danh mục. Nếu bạn muốn truy cập nó từ Project sau đó bạn có thể làm như sau:

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

49
2018-03-11 11:26



Không nên có khoảng cách giữa -p và password - Ejaz
Jap. Điều này sẽ không hoạt động. Chính xác sẽ là mysql -u root -p"password" bank < bank.sql - Armin
tại sao bạn chỉ đơn giản là không thể trả lời trong một dòng? mysql -u username -ppassword db_name < file.sql - Naveed
trong khi điều này hoàn toàn không liên quan đến câu hỏi / câu trả lời này, khi bạn đang làm việc với các cơ sở dữ liệu không tầm thường, không nên nhập mật khẩu trên cùng một lệnh trong văn bản thuần túy. Không chỉ định mật khẩu như một phần của lệnh sẽ nhắc bạn nhập mật khẩu mà bạn có thể nhập một cách an toàn - asgs


  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 Đi vào
  3. Dán tệp SQL của bạn vào bên trong bin thư mục 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. Kiểu source databasefilename.sql và Đi vào
  7. Tệp SQL của bạn tải lên thành công.

44
2018-01-02 15:58



ype đường dẫn của thư mục bin mysql của bạn và nhấn - Ramesh Pareek


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

mysql -u username -p database_name < file.sql

nếu bạn không cần 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 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 sql hoặc là dump tệp 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í nơi dump hoặc là sql tệp tồn tại, sử dụng đường dẫn tương đối ở trên.


37
2017-09-01 10:21





Một giải pháp mà làm việc cho tôi là dưới đây:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

34
2017-08-24 06:02



Điều này làm việc cho tôi bằng cách sử dụng MySQL Command Line Client, sau khi đặt tập tin sql của tôi trong cửa sổ thám hiểm thư mục thích hợp / bin. Cảm ơn - blackhawk
Ít chậm nhưng không dừng lại ở giữa và không nói rằng máy chủ MySQL đã biến mất. - Jaskaran Singh