Cách nhập một bảng duy nhất vào cơ sở dữ liệu mysql bằng dòng lệnh


141

Tôi đã nhập thành công một cơ sở dữ liệu bằng dòng lệnh, nhưng bây giờ khu vực đau đớn của tôi là làm thế nào để nhập một bảng duy nhất với dữ liệu của nó vào cơ sở dữ liệu hiện có bằng dòng lệnh.


3
chỉ xuất bảng duy nhất và nhập
Shakti Singh

3
Xem thêm câu hỏi trùng lặp này: stackoverflow.com/q/1013852/385571 với các câu trả lời phù hợp hơn
MattBianco

Câu trả lời:


317

Linux:

Trong dòng lệnh

 mysql -u username -p  databasename  < path/example.sql

đặt bảng của bạn trong example.sql

Nhập / Xuất cho một bảng:

  1. Lược đồ bảng xuất

    mysqldump -u username -p databasename tableName > path/example.sql

    Điều này sẽ tạo một tệp có tên example.sqltại đường dẫn được đề cập và viết create tablelệnh sql để tạo bảng tableName.

  2. Nhập dữ liệu vào bảng

    mysql -u username -p databasename < path/example.sql

    Lệnh này cần một tệp sql chứa dữ liệu dưới dạng các insertcâu lệnh cho bảng tableName. Tất cả các insertbáo cáo sẽ được thực hiện và dữ liệu sẽ được tải.


2
-u đã bị bỏ lỡ;) mysqldump -u tên người dùng -p databasename tênName> path / example.sql
Kazmin

2
Để nhập, bạn không cần phải sử dụng kết xuất mysql. mysql -u tên người dùng -p databasename tênName <path / example.sql Nó sẽ thực hiện công việc của bạn
Mitchhakar Undurthi

8
Các tableNametên không cần thiết cho tất cả các phiên bản MySQL và nó tạo ra sai sót, vì vậy bạn có thể cần phải bỏ qua nó!
mchar

1
Tôi đã nhận được một lỗi cú pháp cho đến khi tôi nhận ra là trong bash và không phải mysql khi thực thi.
Christia

2
Điều này sẽ chỉ hoạt động nếu tôi có quyền truy cập vào cơ sở dữ liệu mà từ đó tôi có thể xuất một bảng cụ thể. Tuy nhiên, nếu tôi có toàn bộ cơ sở dữ liệu và muốn chọn (các) bảng để nhập, giải pháp này sẽ không hoạt động. Bài đăng được liên kết Tôi có thể khôi phục một bảng duy nhất từ ​​tệp mysqldump đầy đủ không? giải quyết vấn đề đó.
codeforester

34

Xuất khẩu:

mysqldump --user=root databasename > whole.database.sql
mysqldump --user=root databasename onlySingleTableName > single.table.sql

Nhập khẩu :

Toàn bộ cơ sở dữ liệu :

mysql --user=root wholedatabase < whole.database.sql

Bàn đơn :

mysql --user=root databasename < single.table.sql

23

Tất cả các tùy chọn này đều ổn, nếu bạn có tùy chọn để xuất lại dữ liệu.

Nhưng nếu bạn cần sử dụng một tệp SQL hiện có và sử dụng một bảng cụ thể từ nó, thì tập lệnh perl này trong blog TimeSheet , cho phép bạn trích xuất bảng thành một tệp SQL riêng biệt, sau đó nhập nó.


Ngoài ra, bài đăng được liên kết Tôi có thể khôi phục một bảng duy nhất từ ​​tệp mysqldump đầy đủ không? giải quyết vấn đề này
tiền mã hóa

12

Nhập bảng đơn

Để nhập một bảng duy nhất vào cơ sở dữ liệu hiện có, bạn sẽ sử dụng lệnh sau:

mysql -u username -p -D database_name < tableName.sql

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


5

Dòng lệnh

Nhập / Xuất cho một bảng:

Xuất lược đồ bảng

 -> mysqldump -u your_user_name -p your_database_name table_name > test.sql

Điều này sẽ tạo một tệp có tên test.sql và tạo lệnh sql bảng để tạo bảng tên_bảng.

Nhập dữ liệu vào bảng

 -> mysql -u your_user_name -p database_name table_name < test.sql

Hãy chắc chắn rằng tệp test.sql của bạn nằm trong cùng thư mục, nếu không điều hướng qua đường dẫn và sau đó chạy lệnh.


3
Bạn không cần chỉ định tên bảng trong dòng lệnh, vì tệp SQL đã xuất có lệnh gọi liên quan để tạo bảng. Tất cả bạn cần là mysql -u your_user_name -p database_name < test.sql.
Michael De Silva

1
Đây là một ví dụ từ một bảng đã xuất, `22 DROP TABLE IF EXISTS account_product_prices; 23 / *! 40101 SET @satted_cs_client = @@ character_set_client /; 24 / ! 40101 SET character_set_client = utf8 * /; 25 TẠO BẢNG account_product_prices(`
Michael De Silva

5

Trước hết, đăng nhập vào cơ sở dữ liệu của bạn và kiểm tra xem bảng cơ sở dữ liệu mà bạn muốn nhập không có sẵn trên cơ sở dữ liệu của bạn.

Nếu nó có sẵn, xóa bảng bằng lệnh. Khác nó sẽ ném một lỗi trong khi nhập bảng.

DROP TABLE Table_Name;

Sau đó, di chuyển đến thư mục mà bạn có .sqltệp để nhập và chạy lệnh sau từ thiết bị đầu cuối của bạn

mysql -u username -p  databasename  < yourtable.sql

Thiết bị đầu cuối sẽ yêu cầu bạn nhập mật khẩu. Nhập nó và kiểm tra cơ sở dữ liệu.


4

Nó hoạt động chính xác ...

C:\>mysql>bin>mysql -u USERNAME DB_NAME < tableNameFile.sql

xin lưu ý tập tin .sql chỉ định cơ sở dữ liệu hiện tại của bạn ..


2

Chúng ta có thể nhập bảng đơn bằng cách sử dụng CMD như sau:

D:\wamp\bin\mysql\mysql5.5.24\bin>mysql -h hostname -u username -p passowrd databasename < filepath

2

nếu bạn đã có bảng mong muốn trên cơ sở dữ liệu của mình, trước tiên hãy xóa nó và sau đó chạy lệnh bên dưới:

 mysql -u username -p  databasename  < yourtable.sql

2

Từ máy chủ đến cục bộ (Xuất khẩu)

mysqldump -u username -p db_name table_name > path/filename.sql;
mysqldump -u root -p remotelab welcome_ulink > 
/home_local/ladmin/kakalwar/base/welcome_ulink.sql;

Từ cục bộ đến máy chủ (Nhập khẩu)

mysql -u username -p -D databasename < path/x/y/z/welcome_queue.sql
mysql -u root -p -D remotelab < 
/home_local/ladmin/kakalwar/instant_status/db_04_12/welcome_queue.sql

2
Đối với người mới bắt đầu, xin lưu ý rằng bạn phải hoạt động từ thiết bị đầu cuối không phải bên trong mysql sau khi nhấn lệnh, nó sẽ hỏi mật khẩu db_password
Venkatesh Kakalwar

2

Cũng làm việc của nó. Ở dạng lệnh

cd C:\wamp\bin\mysql\mysql5.5.8\bin //hit enter
mysql -u -p databasename //-u=root,-p=blank

2
  • Nó sẽ là sự kết hợp của EXPORT INTO OUTFILELOAD DATA INFILE

  • Bạn cần xuất bảng duy nhất với EXPORT INTO OUTFILE, điều này sẽ xuất dữ liệu bảng vào một tệp. Bạn có thể nhập bảng cụ thể đó bằng cách sử dụngLOAD DATA INFILE

  • Tham khảo doc1 , doc2


1

bạn có thể làm điều đó trong lệnh mysql thay vì lệnh linux.
1.login mysql của bạn.
2. thực hiện điều này trong lệnh mysql:
use DATABASE_NAME;
SET autocommit=0 ; source ABSOLUTE_PATH/TABLE_SQL_FILE.sql ; COMMIT ;


1
mysql -u root -p -D dbname < tablename.sql

1
Trong khi đoạn mã này được chào đón và có thể cung cấp một số trợ giúp, nó sẽ được cải thiện rất nhiều nếu nó bao gồm một lời giải thích về cách thứclý do tại sao điều này giải quyết vấn đề. Hãy nhớ rằng bạn đang trả lời câu hỏi cho độc giả trong tương lai, không chỉ là người hỏi bây giờ! Vui lòng chỉnh sửa câu trả lời của bạn để thêm giải thích và đưa ra dấu hiệu về những hạn chế và giả định được áp dụng.
Toby Speight


0

Sử dụng cơ sở dữ liệu tạm thời có thể là một giải pháp tùy thuộc vào kích thước của cơ sở dữ liệu.

mysql -u [username] -p -e "create database tempdb"
mysql -u [username] -p tempdb < db.sql
mysqldump -u [username] -p tempdb _table_to_import_ > table_to_import.sql
mysql -u [username] -p maindb < table_to_import.sql

0

Để nhập bảng vào cơ sở dữ liệu, nếu bảng đã tồn tại thì hãy thêm dòng này vào tệp sql của bạn DROP TABLE IF EXIST 'table_name'và chạy lệnh mysql -u username -p database_name < import_sql_file.sql. Vui lòng xác minh đường dẫn tệp sql trước khi thực hiện lệnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.