Làm cách nào để nhập tệp .sql trong MySQL?


39

Tôi đang cố gắng nhập tệp .sql bằng MySQL Workbench và tôi gặp lỗi này:

ERROR 1046 (3D000) at line 28: No database selected

Trước tiên tôi đã tạo một cơ sở dữ liệu trống được gọi có cùng tên với tệp .sql nhưng nó không hoạt động. Tôi cũng đã thử làm điều đó với máy khách lệnh mysql bằng cách sử dụng:

mysqldump -u root database > file.sql 

Nhưng nó nói có một lỗi trong cú pháp SQL của tôi. Hơn nữa, tôi không biết đường dẫn mà tôi phải đặt file.sql.


Tôi đã có thể nhập mysqldump bằng cách sử dụng mysql dưới đây> sử dụng mydatabase; mysql nguồn sql_file.sql;
Giridharan Venugopal

Câu trả lời:


49

Xuất khẩu:

mysqldump -u username –-password=your_password database_name > file.sql

Nhập khẩu:

mysql -u username –-password=your_password database_name < file.sql 

9
Cần phải có không gian giữa -ppassword
tombom

Nếu tôi không có mật khẩu thì sao?

Sau đó bỏ qua tham số mật khẩu.
Kazimieras Aliulis

Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) loại bỏ nhu cầu sử dụng tệp trung gian.
Pacerier

2
Cơ sở dữ liệu phải tồn tại trong MySQL để làm việc này, tôi nghĩ vậy.
Noumenon

28

Bạn cũng có thể nhập tệp .sql dưới dạng người dùng đã được kết nối với cơ sở dữ liệu:

mysql> use your_database_name;

mysql> source file.sql;

3
nguồn D: /path/file.sql; hoạt động tuyệt vời! nhớ dấu gạch chéo trước thay vì dấu gạch chéo ngược.
Imdad

6

Một cách khác để nhập tệp kết xuất khi source <filename>không hoạt động là làm như sau:

Đổ

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

Nhập khẩu

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql

5

tất nhiên câu trả lời của juergen là đúng; tuy nhiên, xem xét thông báo lỗi của bạn, bạn cũng có thể thêm vào tệp SQL của mình ở dòng đầu như:

USE your_database_name;

Điều này cũng sẽ thực hiện công việc và cho phép bạn nhập theo Workbench.

Khi bạn đang sử dụng mysqldump, tệp đã xuất sẽ được lưu trong thư mục hiện tại. Nó không quan trọng theo con đường nào. Chỉ khi nhập từ dòng lệnh, bạn cần ở cùng một thư mục hoặc chỉ định đường dẫn đến tệp. Nhưng đây không phải là trường hợp khi bạn đang sử dụng công cụ trực quan như Workbench, nơi bạn cần chọn tệp từ cây thư mục.


2

Bạn đang thiếu mật khẩu trong lệnh. Sử dụng như sau.

mysql --u [username] --password=[password] [database name] < [dump file]

1

Đối với Windows, trong thư mục cài đặt máy chủ MySQL (ví dụ C:\Program Files\MySQL\MySQL Server 5.5), trong phần my.ini file, hãy thêm dòng dưới đây [mysqld]trong phần máy chủ:

max_allowed_packet = 16M

Và lưu các thay đổi. (Nếu bạn không được phép lưu, sau đó sao chép và dán vào màn hình nền và chỉnh sửa lại, sau đó dán vào cùng một vị trí.)

Sau đó, khởi động lại máy chủ MySQL của bạn.

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.