HƯỚNG DẪN Kiểm tra và sửa chữa bảng MySQL sử dụng mysqlcheck

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 20/12/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Khi bảng mysql của bạn bị hỏng, sử dụng lệnh mysqlcheck để sửa chữa nó.
    Lệnh mysqlcheck kiểm tra, sửa chữa, tối ưu hóa và phân tích các bảng.
    1. Kiểm tra một bảng cụ thể trong một cơ sở dữ liệu
    Nếu ứng dụng của bạn báo về một thông báo lỗi nói rằng một bảng cụ thể bị hỏng, thực hiện lệnh mysqlcheck để kiểm tra xem một bảng.
    Ví dụ sau đây sẽ kiểm tra bảng employee trong cơ sở dữ liệu aluhost.
    Mã:
    # mysqlcheck -c aluhost employee -u root -p
    Enter password:
    aluhost.employee    OK
    Bạn cần phải nhập username/password đến lệnh mysqlcheck. Nếu không, bạn sẽ nhận được thông báo lỗi sau đây.
    [CODE
    ]# mysqlcheck -c aluhostemployee
    mysqlcheck: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect[/CODE]

    Lợi thế của lệnh mysqlcheck là nó có thể được thực hiện khi các daemon mysql đang chạy. Vì vậy, sử dụng lệnh mysqlcheck bạn có thể kiểm tra và sửa chữa bảng hỏng trong khi cơ sở dữ liệu vẫn chạy.

    2. Kiểm tra tất cả các bảng trong một cơ sở dữ liệu
    Để kiểm tra xem tất cả các bảng trong cơ sở dữ liệu đặc biệt, không chỉ định tên bảng. Chỉ cần ghi rõ tên cơ sở dữ liệu.
    Ví dụ sau đây sẽ kiểm tra tất cả các bảng trong cơ sở dữ liệu alfresco.
    Mã:
    # mysqlcheck -c alfresco  -u root -p
    Enter password:
    alfresco.JBPM_ACTION                               OK
    alfresco.JBPM_BYTEARRAY                            OK
    alfresco.JBPM_BYTEBLOCK                            OK
    alfresco.JBPM_COMMENT                              OK
    alfresco.JBPM_DECISIONCONDITIONS                   OK
    alfresco.JBPM_DELEGATION                           OK
    alfresco.JBPM_EVENT                                OK
    3. Kiểm tra tất cả các bảng và tất cả cơ sở dữ liệu
    Để kiểm tra xem tất cả các bảng và tất cả các cơ sở dữ liệu sử dụng "–all-databases" cùng với tùy chọn -c như hình dưới đây.
    Mã:
    # mysqlcheck -c  -u root -p --all-databases
    Enter password:
    aluhost.employee                              OK
    alfresco.JBPM_ACTION                               OK
    alfresco.JBPM_BYTEARRAY                            OK
    alfresco.JBPM_BYTEBLOCK                            OK
    ..
    ..
    mysql.help_category
    error    : Table upgrade required. Please do "REPAIR TABLE `help_category`" or dump/reload to fix it!
    mysql.help_keyword
    error    : Table upgrade required. Please do "REPAIR TABLE `help_keyword`" or dump/reload to fix it!
    ..
    Nếu bạn muốn kiểm tra tất cả các bảng của một vài cơ sở dữ liệu, chỉ rõ tên cơ sở dữ liệu sử dụng tùy chọn "-databases".
    Ví dụ sau đây sẽ kiểm tra tất cả các bảng trong cơ sở dữ liệu aluhost và centos.
    Mã:
    # mysqlcheck -c  -u root -p --databases aluhost centos
    Enter password:
    aluhost .employee                              OK
    centos.JBPM_ACTION                               OK
    centos.JBPM_BYTEARRAY                            OK
    centos.JBPM_BYTEBLOCK                            OK
    4. Phân tích bảng sử dụng mysqlcheck
    Sau đây phân tích bảng employee nằm trong cơ sở dữ liệu aluhost.
    Mã:
    # mysqlcheck -a aluhost employee -u root -p
    Enter password:
    aluhost.employee   Table is already up to date
    Lệnh mysqlcheck sử dụng "ANALYZE TABLE" để phân tích. Trong khi mysqlcheck đang thực hiện lệnh phân tích bảng đã bị khóa và có sẵn cho quá trình khác chỉ có trong chế độ đọc.

    5. Tối ưu hóa bảng sử dụng mysqlcheck
    Sau đây sẽ tối ưu hóa bảng employee nằm trong cơ sở dữ liệu aluhost.
    Mã:
    # mysqlcheck -o aluhost employee -u root -p
    Enter password:
    aluhost.employee         OK
    Lệnh mysqlcheck sử dụng "OPTIMIZE TABLE". Khi bạn xóa nhiều hàng từ một bảng, tối ưu hóa giúp có được không gian chưa sử dụng và chống phân mảnh các tập tin dữ liệu. Điều này có thể cải thiện hiệu suất trên các bảng lớn đã trải qua một số cập nhật.

    6. Sửa chữa bảng sử dụng mysqlcheck
    Việc sửa chữa sau bảng bảng employee nằm trong cơ sở dữ liệu aluhost.
    Mã:
    # mysqlcheck -r aluhost employee -u root -p
    Enter password:
    aluhost.employee         OK
    Lệnh mysqlcheck sử dụng "REPAIR TABLE". Điều này sẽ sửa chữa và khắc phục một MyISAM hỏng và bảng lưu trữ.

    7. Kết hợp kiểm tra, tối ưu hóa và sửa chữa bảng
    Thay vì kiểm tra và sửa chữa một cách riêng biệt. Bạn có thể kết hợp kiểm tra, tối ưu hóa và chức năng sửa chữa lại với nhau bằng "–auto-repair” như dưới đây.

    Các kiểm tra sau, tối ưu hóa và sửa chữa tất cả các bảng bị hỏng trong cơ sở dữ liệu aluhost.
    Mã:
    # mysqlcheck -u root -p --auto-repair -c -o aluhost
    Bạn cũng kiểm tra, tối ưu hóa và sửa chữa tất cả các bảng trên tất cả các cơ sở dữ liệu của bạn bằng cách sử dụng lệnh sau đây.
    Mã:
    # mysqlcheck -u root -p --auto-repair -c -o --all-databases
    Nếu bạn muốn biết những gì lệnh đang được thực hiện trong khi nó đang kiểm tra, thêm -debug-info như dưới đây. Điều này rất hữu ích khi bạn đang kiểm tra một bảng lớn.
    Mã:
    # mysqlcheck --debug-info -u root -p --auto-repair -c -o aluhost employee
    Enter password:
    aluhost.employee  Table is already up to date
    
    User time 0.00, System time 0.00
    Maximum resident set size 0, Integral resident set size 0
    Non-physical pagefaults 344, Physical pagefaults 0, Swaps 0
    Blocks in 0 out 0, Messages in 0 out 0, Signals 0
    Voluntary context switches 12, Involuntary context switches 9
    8. Thêm lựa chọn mysqlcheck
    Sau đây là một số trong những lựa chọn quan trọng mà bạn có thể sử dụng cùng với mysqlcheck.

    -A, –all-databases: Xem xét tất cả các cơ sở dữ liệu
    -a, –analyze: Phân tích tất cả bảng
    -1, –all-in-1: sử dụng một truy vấn cho mỗi cơ sở dữ liệu với các bảng liệt kê trong một dấu phẩy tách ra
    –auto-repair: Sửa chữa tự động sửa chữa bảng này nếu là bị hỏng
    -c, –check: Kiểm tra các lỗi bảng.
    -C, –check-only-changed: Kiểm tra bảng được thay đổi kể từ lần kiểm tra gần đây nhất.
    -g, –check-upgrade: Kiểm tra các thay đổi phụ thuộc vào phiên bản trong bảng
    -B, –databases Kiểm tra nhiều hơn một cơ sơ dữ liệu.
    -F, –fast: Kiểm tra bảng nếu không được đóng lại đúng cách
    –fix-db-names: Sửa tên cơ sơ dữ liệu
    –fix-table-names: Sửa tên bảng
    -f, –force: Tiếp tục kiểm tra thậm chí khi có một lỗi xảy ra.
    -e, –extended Perform extended check on a table. This will take a long time to execute.
    -m, –medium-check: Thực hiện kiểm tra mở rộng trên một bảng. Điều này sẽ mất một thời gian dài để thực thi.
    -o, –optimize Tối ưu hóa các bảng
    -q, –quick Chế độ nhanh hơn medium-check
    -r, –repair Sửa bảng bị hỏng




    .
     

Chia sẻ trang này

Đang tải...