Import big database in mysql

Discussion in 'SQL Bugs' started by root, May 24, 2014.

  1. root

    root Well-Known Member

    Joined:
    Dec 31, 2012
    Messages:
    1,133
    Likes Received:
    60
    Trophy Points:
    48
    - Hầu hết các website dùng database php-mysql thì đều sử dụng phpMyadmin để export database.
    - Vấn đề là khi import trở lại. Các site hầu hết đều giới hạn dung lượng file import qua phpMyadmin là 2MB.
    - Để giải quyết vấn đề này mình đưa ra một vài giải pháp với các trường hợp.

    I. Full permission:
    - Trương hợp này áp dụng cho bạn nào có máy chủ web riêng và bạn có quyền kiểm soát mọi thứ giống như bạn dùng localhost.
    - Ví Dụ: Website của bạn đặt trên VPS, Delicate Server... mà bạn sở hữu. Hoặc
    - Với trường hợp này mình đưa ra các giải pháp sau:

    1. Giải pháp 1:

    • Nếu database quá lớn, việt xuất ra file .sql là rất bất tiện.
    • Backup bằng cách copy nguyên thư mục chứa các file của database
    • Import lại thì bạn copy nguyên cục trên vào thư mục chứa database của mysql (database mới thì tạo database trước khi copy, cũ thì copy đè lên).
    • Sau đó CHMOD các file database đúng với owner chạy mysql và restart lại MySql là được.
    2. Giải pháp 2:
    • Nếu database ở khá lớn ở dạng file *.sql thì dùng lệnh của MySql.
    • Bạn có thể Login với quyền root, sau đó change sang database cần import.
    • Lưu ý đến charset của database trước khi import, đặc biệt là hay dùng UTF8. Để set UTF8 chạy lệnh :
    [TABLE="class: outer_border, width: 500"]

    mysql> SET NAMES utf8

    Sau đó chạy lệnh import :

    mysql> source filename;

    [/TABLE]

    II. Import từ phía web client (phổ biến)
    - Thường đối với những bạn sử dụng hosting của nhà cung cấp hay share host... và bạn không có quyền chỉnh sửa server của họ

    1. Giải pháp 1:
    - khá phổ biến và rất hay là dùng BigDump.( hoặc 1 vài tools khác)
    - Cách làm :
    • download bigdump về tại đây: http://www.ozerov.de/bigdump/
    • upload file database .sql lên server (ví dụ : test.sql).
    • upload file bigdump.php đã config rồi lên.
    • Lên web chạy : domain/bigdump.php vd:svuit.com/bigdump.php và bấm Start --> ko báo lỗi gì là ok.
    • Các tham số đáng chú ý với bigdump :
    [TABLE="class: outer_border, width: 600"]

    $db_server = 'localhost';// --> địa chỉ server
    $db_name = '';// --> tên database
    $db_username = '';// --> user
    $db_password = ''; //--> mật khẩu
    $filename = 'test.sql';// --> tên file database, ở đây là test.sql (Nên để trống)
    $db_connection_charset = 'utf8';// --> (utf8 hoặc latin1) cái này quan trọng này, nếu không đúng database sẽ rất dễ bị lỗi tiếng Việt. Nếu sao lưu bằng mysql dumper thì thường là utf8 còn các tools khác là latin1
    [/TABLE]
    - Chú ý:
    • bigdump rất hay nhưng mà 1 số host dung bigdump bị lỗi font. Ví dụ: bluehost của tôi dùng bigdump lỗi font
    • vì thế các bạn nên dùng tool chia nhỏ data.
    • Sau khi dùng bigdump xong nhớ del đi nó đi ko thì nó rất nguy hiểm.
    - Ở đây có 1 tools cũng khá hay của sinhvienit.net
    • Pass: tanphu.net
    • Bạn tải về up lên host CHMOD thư mục saoluu thành 777 . (Khi sao lưu mà báo lỗi nhớ CHMOD 666 cho các file .php bên trong thư mục saoluu)
    • File sao lưu hoặc file cần phục hồi sẽ nằm trong thư mục saoluu
    • Bây giờ muốn saolưu chỉ cần chạy file SaoLuu.php
    • Download
    [TABLE="class: outer_border, width: 700"]

    http://www.mediafire.com/download.php?bxx7c1awc8cs4lz
    pass giải nén: sinhvienit.net
    nếu link mediafire ở trên bị die, các bạn có thể down ở link dự phòng bên dưới
    http://upfile.vn/4Wv2
    http://sinhvienit.net/forum/attachm...t---saoluu.zipBáo link hỏng
    [​IMG] File Kèm Theo (Bạn chỉ download được 1 file cùng lúc, vui lòng download từng file)

    [/TABLE]
    Nguồn: http://sinhvienit.net/forum/share-code-sao-luu-phuc-hoi-csdl-cuc-cool-chi-1-file-duy-nhat.1346.html

    2. Giải pháp 2:
    - Cách này sử dụng một tool có tên là SQLDumpSplitter để chia nhỏ file *.sql ra.
    - sau đó import từng file nhỏ một rất hiệu quả.

    - Cách làm: Đầu tiên cần download tool SQLDumpSplitter tại đây.

    [​IMG]


    - Cách sử dụng:

    • Step 1: Chọn file *.sql cần chia nhỏ
    • Step 2: Chọn dung lượng file muốn chia nhỏ
    • Step 3: Chọn nơi lưu trũ file chia chỏ
    • Step 4: Nhấn vào Execute để bắt đầu thực hiện.

    - Cách import vào Mysql như sau:

    • Mở file có tên dạng tendatabasecuaban_DataStructure
    • copy toàn bộ nội dung trong đó vào phpmyadmin tìm đến database muốn import dữ liệu vào.
    [​IMG]


    • Trong tab SQL paste toàn bộ nội dung vào ô trống rồi nhấn Go để tạo ra cấu trúc các bảng cho database.
    • Tiếp theo chỉ là import tất cả các file sql đã chia nhỏ ra vào database là xong.
    - Giải pháp 3:
    • các này khá thủ công.
    • Các bạn backup từng phần của database. VD: Backup table nào nặng riêng ra, còn gom các table bé hơn backup 1 lần
    • ...

    Kết luận: là tùy tình hình mà sử dụng các cách khác nhau. Bạn có thể kết hợp các cách lại với nhau, chẳng hạn bạn có thể kết hợp 1 + 2 :)
     

Share This Page