Cách nhập tệp sql lớn trong phpmyadmin


81

Tôi muốn nhập tệp sql có dung lượng khoảng 12 mb. Nhưng nó gây ra vấn đề trong khi tải. Có cách nào để tải nó lên mà không cần chia nhỏ tệp sql không?


1
sử dụng một số công cụ mysql như mysql workbenchhoặcmysql Yog
diEcho

bạn cũng có thể thấy nó ở đây stackoverflow.com/questions/9593128/… Dunn.
Dung

Nếu bạn không thể sử dụng mysql console, có một giải pháp thú vị mà xuất phát từ tài liệu phpmyadmin: ozerov.de/bigdump
Paolo Gibellini

Câu trả lời:


97

Cố gắng nhập nó từ bảng điều khiển mysql theo sở thích của hệ điều hành của bạn.

mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}

hoặc nếu nó nằm trên một máy chủ từ xa, hãy sử dụng cờ -h để chỉ định máy chủ.

mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}

1
Ok, cảm ơn các bạn đã hoàn nguyên. Tôi thực hiện các thay đổi trong php.ini và nén tệp. Nó làm việc cho tôi :)
Jasmeet Kaur Chauhan

3
cách nhanh nhất để làm điều này!
Aris

1
Đây là một câu trả lời tuyệt vời. Đối với bất kỳ ai có thể không quá hiểu biết, bạn chỉ có thể tải tệp DB của mình lên trình quản lý tệp trên máy chủ của bạn, sau đó sử dụng SSH trên máy chủ của bạn để hoạt động cục bộ. Điều này dễ dàng hơn nhiều so với cài đặt mysqltrên máy chủ của bạn chỉ với một lần di chuyển. Cảm ơn các bạn vì đã giúp đỡ! (Ngoài ra, tôi không cần dấu ngoặc)
DomainsFeatured

1
Đối với những người đang thắc mắc, bạn cần phải duyệt đến thư mục MySQL / bin của mình để chạy lệnh. Làm việc rất tốt. Cảm ơn.
Etienne Dupuis

1
Điều gì về việc họ không có mật khẩu? sử dụng cơ sở dữ liệu với tên người dùng mặc định gốc? Sử dụng lệnh này, nó sẽ yêu cầu mật khẩu.
Hkachhia

68

3 điều bạn phải làm:

trong php.inicài đặt php của bạn (lưu ý: tùy thuộc vào việc bạn muốn nó cho CLI, apache hay nginx, hãy tìm php.ini phù hợp để thao tác)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

hoặc đặt các giá trị khác.

Khởi động lại / tải lại apache nếu bạn đã cài đặt apache hoặc php-fpm cho nginx nếu bạn sử dụng nginx.

Máy chủ từ xa?

cũng tăng max_execution_time, vì sẽ mất thời gian để tải tệp lên.

Cài đặt NGINX?

bạn sẽ phải thêm: client_max_body_size 912M;trong /etc/nginx/nginx.confvới http{...}khối


3
Câu trả lời chính xác. Những 3 dòng là bắt buộc

Điều này phải được bổ sung vào thư mục của bạn apache, không phải là thư mục cli (ít nhất là thử nghiệm trên hộp Ubuntu của tôi)
Bad_Neighbor

thay đổi điều này cho /etc/php/7.1/apache2/php.inikhông hoạt động
W.Doch

@RickSanchez bạn có chắc mình chạy phiên bản php này trên apache không? hãy chạy phpinfo()và xác minh rằng các giá trị đã được thiết lập một cách chính xác và máy chủ đã được khởi động lại
Toskan

1
Dont quên nâng cao giá trị max_execution_time trong php ini và khởi động lại apache
hamboy75

62

Chỉnh sửa tệp config.inc.php nằm trong thư mục phpmyadmin. Trong trường hợp của tôi, nó được đặt tại C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php.

Tìm dòng có $cfg['UploadDir']trên đó và cập nhật nó lên$cfg['UploadDir'] = 'upload';

Sau đó, tạo một thư mục có tên 'tải lên' trong thư mục phpmyadmin (đối với tôi, tại C:\wamp\apps\phpmyadmin3.2.0.1\upload\).

Sau đó, đặt tệp SQL lớn mà bạn đang cố gắng nhập vào uploadthư mục mới . Bây giờ khi bạn truy cập trang nhập db trong bảng điều khiển phpmyadmin, bạn sẽ thấy một trình đơn thả xuống mà trước đây không có - nó chứa tất cả các tệp sql trong thư mục tải lên mà bạn vừa tạo. Bây giờ bạn có thể chọn mục này và bắt đầu nhập.

Nếu bạn không sử dụng WAMP trên Windows, thì tôi chắc chắn rằng bạn sẽ có thể thích ứng với môi trường của mình mà không gặp quá nhiều khó khăn.

Tham khảo: http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/


5
Với các phiên bản mới hơn của phpMyAdmin, var $ cfg ['UploadDir'] hoàn toàn không có; tuy nhiên, giải pháp này vẫn hoạt động bằng cách chỉ thêm var trên một dòng mới trong tệp.
dan

Var được tìm thấy trong config.default.php, cùng một dir, đang sử dụng phpmyadmin phiên bản 4.6.4
KAD

1
Không thể chỉnh sửa nhận xét trước đó nữa, dir làlibraries/config.default.php
KAD

giải pháp tuyệt vời sau khi dành hai ngày thử dòng lệnh MySQL với kết quả thất bại.
youhana

22

Giải pháp cho NGƯỜI DÙNG LINUX (chạy với sudo)

Tạo thư mục 'tải lên' và 'lưu':

mkdir /etc/phpmyadmin/upload
mkdir /etc/phpmyadmin/save
chmod a+w /etc/phpmyadmin/upload
chmod a+w /etc/phpmyadmin/save

Sau đó chỉnh sửa tệp cấu hình của phpmyadmin:

gedit /etc/phpmyadmin/config.inc.php

Cuối cùng thêm đường dẫn tuyệt đối cho cả thư mục 'tải lên' và 'lưu':

$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';

Bây giờ, chỉ cần thả các tệp vào /etc/phpmyadmin/uploadthư mục và sau đó bạn sẽ có thể chọn chúng từ phpmyadmin.

nhập mô tả hình ảnh ở đây

Hy vọng điều này giúp đỡ.


Với phương pháp này, phpmyadmin sẽ gửi cho tôi một File could not be read!thông báo khi tôi nhấp vào nút gửi trên biểu mẫu tải lên. Đang khắc phục sự cố này ngay bây giờ.

@JoeRocc bạn đã tìm ra giải pháp cho vấn đề của mình chưa? Có lẽ đó là vấn đề về quyền hoặc quyền sở hữu. Hãy thử vớisudo chmod 777 your-filename.sql
Guille Acosta

2
775. Không phải 777. Không nên khuyên người ta đặt 777 để mọi thứ hoạt động trên một máy chủ trực tiếp. Nó có vấn đề về bảo mật.
Koushik Das

15

Chỉ cần một dòng là bạn đã hoàn tất (đảm bảo rằng lệnh mysql có sẵn dưới dạng toàn cục hoặc chỉ cần đi tới thư mục cài đặt mysql và nhập vào thư mục bin)

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

Đây

  • u viết tắt của Người dùng
  • p viết tắt của Mật khẩu
  • D viết tắt của Database

--- ĐỪNG QUÊN BỔ SUNG <KÝ KẾT SAU TÊN CƠ SỞ DỮ LIỆU ---

Đường dẫn tệp hoàn chỉnh với tên và phần mở rộng có thể giống như

c:\folder_name\"folder name"\sql_file.sql

--- NẾU THƯ MỤC VÀ TÊN TẬP TIN CỦA BẠN CHỨA KHÔNG GIAN HƠN GIỮA HỌ SỬ DỤNG BÁO GIÁ ĐÔI ---

Mẹo và Lưu ý: Bạn có thể viết mật khẩu của mình sau -pnhưng điều này không được khuyến khích vì nó sẽ hiển thị cho những người khác đang xem màn hình của bạn tại thời điểm đó, nếu bạn không ghi vào đó, nó sẽ hỏi bạn khi nào bạn sẽ thực hiện lệnh bằng cách nhấn enter.



7

Tôi có thể nhập một .sqltệp lớn bằng cách có cấu hình sau trong httpd.conftệp:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted

    php_admin_value upload_max_filesize 128M
    php_admin_value post_max_size 128M
    php_admin_value max_execution_time 360
    php_admin_value max_input_time 360
</Directory>

4

Bạn sẽ phải chỉnh sửa tệp php.ini. thay đổi phần sau upload_max_filesize post_max_sizeđể phù hợp với kích thước tệp của bạn.

Đang thử chạy phpinfo()để xem giá trị hiện tại của chúng. Nếu bạn không có quyền thay đổi trực tiếp tệp php.ini, hãy thử ini_set ()

Nếu đó cũng không phải là một lựa chọn, bạn có thể muốn thử bigdump .




2

Tôi tình cờ đọc được một bài báo và điều này phù hợp nhất với tôi

  1. Mở tệp config.inc.php trong phpmyadmin dir bằng trình soạn thảo mã yêu thích của bạn. Trong môi trường MAMP địa phương của bạn, nó sẽ được đặt ở đây:

Ổ cứng »Ứng dụng» MAMP »bin» config.inc.php

  1. Thực hiện tìm kiếm cụm từ $cfg[‘UploadDir’]- nó sẽ giống như sau:

$cfg['UploadDir'] = '';

  1. Thay đổi nó thành như thế này:

$cfg['UploadDir'] = 'upload';

  1. Sau đó, trong phpmyadmin dir đó, tạo một thư mục mới và đặt tên cho nó tải lên.

  2. Lấy tệp .sql lớn mà bạn đang cố nhập và đặt nó vào thư mục tải lên mới đó.

  3. Bây giờ, vào lần tiếp theo bạn nhập cơ sở dữ liệu vào phpMyAdmin, bạn sẽ thấy một trường thả xuống mới ngay bên dưới vùng duyệt tiêu chuẩn trong phần “Tệp cần nhập”.


2

Ok bạn sử dụng PHPMyAdmin nhưng đôi khi cách tốt nhất là thông qua terminal:

  • Kết nối với cơ sở dữ liệu: mysql -h localhost -u root -p(chuyển root và localhost cho người dùng và vị trí cơ sở dữ liệu)
  • Bắt đầu nhập từ kết xuất: \. /path/to/your/file.sql
  • Đi uống cà phê và khoe khoang về bản thân vì bạn sử dụng thiết bị đầu cuối.

Và đó là nó. Chỉ cần nhớ nếu bạn đang ở trong một máy chủ từ xa, bạn phải tải tệp .sql lên một số thư mục.


2

câu trả lời cho những người có chia sẻ lưu trữ. Tốt nhất nên sử dụng tập lệnh nhỏ này mà tôi vừa sử dụng để nhập tệp DB 300mb vào máy chủ của mình. Kịch bản có tên là Big Dump.

cung cấp một tập lệnh để nhập các DB lớn trên các máy chủ giới hạn tài nguyên


Đây thực sự là giải pháp tốt, nhưng Bạn đã nhận được phản đối vì URL có thể không hợp lệ vào một ngày nào đó. Vui lòng thêm một số thông tin về tập lệnh này, đặc biệt là tên của nó.
thay vào đó

nó được gọi là kết xuất lớn, nó ngăn máy chủ SQL dừng hoặc bị gián đoạn khi nhập tệp cơ sở dữ liệu lớn vào máy chủ. btw có câu trả lời khác với các url có thể xuống bất cứ lúc nào và ai trong số họ đang xuống bình chọn
c0d3x1337

2

Trong MAMP, Bạn có thể tải các tệp lớn bằng cách:

  1. tạo một thư mục mới trong thư mục này / MAMP / bin / phpMyAdmin / "folderName"

  2. và sau đó chỉnh sửa "/MAMP/bin/phpMyAdmin/config.inc.php" dòng 531:

       $cfg['UploadDir']= 'folderName';   
    
  3. Sao chép Tệp .sql hoặc .csv của bạn vào thư mục này.

  4. Bây giờ bạn sẽ có một tùy chọn khác trong "PhpMyAdmin": Chọn từ thư mục tải lên máy chủ web newFolder /: Bạn có thể chọn tệp của mình và nhập nó.

    Bạn có thể tải bất kỳ tệp nào ngay bây giờ !!


1

Cách tốt nhất để tải lên một tệp lớn không sử dụng phpmyadmin. gây ra phpmyadin lúc đầu tải lên tệp bằng cách sử dụng lớp tải lên php sau đó thực thi sql khiến phần lớn thời gian của nó xảy ra.

cách tốt nhất là: nhập thư mục wamp> bin> mysql> bin dirrectory rồi viết dòng này

mysql -u root -p listnames <lastdb.sql ở đây listnames là tên cơ sở dữ liệu lúc đầu hãy tạo cơ sở dữ liệu trống và mới nhấtdb.sql là tên tệp sql của bạn nơi dữ liệu của bạn hiển thị.

nhưng một điều quan trọng là nếu tệp cơ sở dữ liệu của bạn có dữ liệu unicode. bạn phải mở tệp newdb.sql của mình và một dòng trước bất kỳ dòng nào. dòng là:

ĐẶT TÊN utf8; thì chế độ lệnh của bạn chạy mã tập lệnh này


1
  1. Mở tệp sql của bạn trong trình soạn thảo văn bản (như Notepad)
  2. Chọn Tất cả -> Sao chép
  3. Đi tới phpMyAdmin, chọn cơ sở dữ liệu của bạn và chuyển đến tab SQL
  4. Dán nội dung bạn đã sao chép vào khay nhớ tạm
  5. Nó có thể bật lên một lỗi javascript, hãy bỏ qua nó
  6. Hành hình

Không phải là một thực hành tốt! Văn bản lớn sẽ gây ra vấn đề lớn khi bạn làm điều này. Cách tốt nhất là cấu hình php.ini để cho phép nhập lớn hoặc nhập thông qua mysql.
Marcelo Agimóvel

0

Thay đổi cài đặt máy chủ của bạn để cho phép tải lên tệp lớn hơn 12 mb và bạn sẽ ổn. Thông thường, cài đặt máy chủ được đặt thành 5 đến 8 mb để tải lên tệp.


1
Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, hãy để lại bình luận bên dưới bài đăng của họ. - Từ đánh giá
Sebastian Brosch vào

1
thực sự tại thời điểm câu trả lời này được đăng, đây là lỗi phổ biến nhất (3 năm trước) mà tệp tải lên mặc định không đủ lớn. Anh ấy đang sử dụng phpmyadmin == webinterface. nhập == tải lên từ đĩa. tải lên == cài đặt máy chủ. cài đặt máy chủ == mặc định là 5 hoặc 8 mb 3 năm trước. Vì vậy, tôi không thấy làm thế nào điều này KHÔNG cung cấp một câu trả lời. Vâng, tôi đã không hướng dẫn anh ấy cách thiết lập chính xác vì anh ấy chưa cung cấp máy chủ mà anh ấy đang sử dụng, apache, ngix, iis, khác.
Tschallacka

0

Một giải pháp là sử dụng dòng lệnh;

mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

Chỉ cần đảm bảo đường dẫn đến tệp SQL để nhập được nêu rõ ràng.

Trong trường hợp của tôi, tôi đã sử dụng cái này;

mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql

Thì đấy! bạn tốt để đi.


0

Tôi đã tạo một tập lệnh PHP được thiết kế để nhập các kho cơ sở dữ liệu lớn được tạo bởi phpmyadmin. Nó được gọi là PETMI và bạn có thể tải xuống tại đây [trang dự án] [trang gitlab] . Nó đã được thử nghiệm với cơ sở dữ liệu 1GB.


0

PHPmyadmin cũng chấp nhận các tệp nén ở định dạng gzip, vì vậy bạn có thể gzip tệp (Sử dụng 7Zip nếu bạn không có bất kỳ tệp nào) và tải tệp nén lên. Vì nó là một tệp văn bản, nó sẽ có tỷ lệ nén tốt.

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.