Bài viết này mô tả cách sửa chữa các bảng và cơ sở dữ liệu MySQL. Khi các bảng của cơ sở dữ liệu phát triển, thỉnh thoảng có thể xảy ra lỗi. Khi họ làm như vậy, MySQL bao gồm một số công cụ mà bạn có thể sử dụng để kiểm tra và sửa chữa các bảng cơ sở dữ liệu. Để thực hiện việc này, hãy làm theo các quy trình bên dưới theo thứ tự xuất hiện
Bài viết này chỉ áp dụng cho các sản phẩm được liệt kê trong thanh bên Chi tiết bài viết. Bạn phải có quyền truy cập root vào máy chủ để làm theo các quy trình này
Bước 1. Sao lưu cơ sở dữ liệu
Trước khi bạn cố gắng sửa chữa bất kỳ cơ sở dữ liệu nào, bạn nên sao lưu nó trước. Để sao lưu tất cả các tệp từ tất cả các cơ sở dữ liệu của bạn, hãy làm theo các bước sau
- Đăng nhập vào máy chủ của bạn bằng SSH
- Dừng máy chủ MySQL bằng lệnh thích hợp cho bản phân phối Linux của bạn
- Đối với CentOS và Fedora, hãy nhập.
service mysqld stop
Đối với Debian và Ubuntu, gõ
service mysql stop
- Đối với CentOS và Fedora, hãy nhập.
Gõ lệnh sau
cp -rfv /var/lib/mysql /var/lib/mysql$[date +%s]
Lệnh này sao chép tất cả các tệp từ tất cả cơ sở dữ liệu của bạn sang tên thư mục dựa trên thời gian hiện tại [chính xác hơn là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970]. Điều này đảm bảo rằng mỗi bản sao lưu cơ sở dữ liệu được lưu trữ trong một thư mục có tên duy nhất. Để tăng cường bảo vệ, bạn có thể [và nên] sao lưu các tệp cơ sở dữ liệu vào một vị trí từ xa không có trên máy chủ
Khởi động lại máy chủ MySQL bằng lệnh thích hợp cho bản phân phối Linux của bạn
- Đối với CentOS và Fedora, hãy nhập.
service mysqld start
Đối với Debian và Ubuntu, gõ
service mysql start
- Đối với CentOS và Fedora, hãy nhập.
Bước 2. Chạy mysqlcheck
Sau khi sao lưu cơ sở dữ liệu của mình, bạn đã sẵn sàng để bắt đầu khắc phục sự cố. Chương trình mysqlcheck cho phép bạn kiểm tra và sửa chữa cơ sở dữ liệu trong khi MySQL đang chạy. Tính năng này hữu ích khi bạn muốn làm việc trên cơ sở dữ liệu mà không cần dừng toàn bộ dịch vụ MySQL
Ngoài ra, mysqlcheck hoạt động trên các bảng sử dụng công cụ cơ sở dữ liệu MyISAM hoặc InnoDB
Để biết thông tin về cách xác định công cụ lưu trữ mà bảng cơ sở dữ liệu đang sử dụng, vui lòng xem bài viết này
Để sử dụng mysqlcheck, hãy làm theo các bước sau
- Là người dùng root, gõ lệnh sau.
cd /var/lib/mysql
Nhập lệnh sau, thay thế cơ sở dữ liệu bằng tên của cơ sở dữ liệu mà bạn muốn kiểm tra
mysqlcheck database
Lệnh trước kiểm tra tất cả các bảng trong cơ sở dữ liệu đã chỉ định. Ngoài ra, để kiểm tra một bảng cụ thể trong cơ sở dữ liệu, hãy nhập lệnh sau. Thay thế cơ sở dữ liệu bằng tên của cơ sở dữ liệu và thay thế bảng bằng tên của bảng mà bạn muốn kiểm tra
mysqlcheck database table
Mysqlcheck kiểm tra cơ sở dữ liệu và bảng được chỉ định. Nếu một bảng vượt qua kiểm tra, mysqlcheck sẽ hiển thị OK cho bảng. Tuy nhiên, nếu mysqlcheck báo lỗi cho một bảng, hãy gõ lệnh sau để thử sửa chữa nó. Thay thế cơ sở dữ liệu bằng tên cơ sở dữ liệu và bảng bằng tên bảng
________số 8_______- Nếu mysqlcheck không thể sửa chữa thành công bảng hoặc các bảng, hãy thực hiện quy trình sau
Bước 3. Chạy chẩn đoán dành riêng cho động cơ
Nếu chạy mysqlcheck không khắc phục được sự cố, bước tiếp theo là chạy chẩn đoán dành riêng cho công cụ được sử dụng bởi bảng hoặc các bảng cơ sở dữ liệu. Thực hiện theo quy trình thích hợp bên dưới cho công cụ lưu trữ cơ sở dữ liệu của bảng của bạn
Để biết thông tin về cách xác định công cụ lưu trữ mà bảng cơ sở dữ liệu của bạn đang sử dụng, vui lòng xem bài viết này
Nếu bạn đang sử dụng công cụ lưu trữ MyISAM cho một bảng, bạn có thể chạy chương trình myisamchk để sửa chữa nó. Để làm điều này, hãy làm theo các bước sau
Chương trình myisamchk chỉ hoạt động đối với các bảng sử dụng công cụ lưu trữ MyISAM. Nó không hoạt động cho công cụ InnoDB
- Dừng máy chủ MySQL bằng lệnh thích hợp cho bản phân phối Linux của bạn
- Đối với CentOS và Fedora, hãy nhập.
service mysqld stop
Đối với Debian và Ubuntu, gõ
service mysql stop
- Đối với CentOS và Fedora, hãy nhập.
Gõ lệnh sau
cd /var/lib/mysql
- Thay đổi thư mục chứa cơ sở dữ liệu. Ví dụ: nếu cơ sở dữ liệu có tên là customers, hãy nhập cd customers
Nhập lệnh sau, thay thế table bằng tên của bảng mà bạn muốn kiểm tra
service mysql stop
2Để kiểm tra tất cả các bảng trong cơ sở dữ liệu, hãy gõ lệnh sau
service mysql stop
3Nếu lệnh trước đó không hoạt động, bạn có thể thử xóa các tệp tạm thời có thể ngăn myisamchk chạy chính xác. Để thực hiện việc này, hãy quay lại thư mục /var/lib/mysql, rồi nhập lệnh sau
service mysql stop
4Nếu có cái nào. Các tệp TMD được liệt kê, nhập lệnh sau để xóa chúng
service mysql stop
5Sau đó thử chạy lại myisamchk
Để thử sửa chữa một bảng, hãy nhập lệnh sau, thay thế bảng bằng tên của bảng mà bạn muốn sửa chữa
service mysql stop
6Khởi động lại máy chủ MySQL bằng lệnh thích hợp cho bản phân phối Linux của bạn
- Đối với CentOS và Fedora, hãy nhập.
service mysqld start
Đối với Debian và Ubuntu, gõ
service mysql start
- Đối với CentOS và Fedora, hãy nhập.
- Kiểm tra bảng hoặc bảng đã sửa chữa
Nếu bạn đang sử dụng công cụ lưu trữ InnoDB cho bảng cơ sở dữ liệu, bạn có thể chạy quy trình khôi phục InnoDB. Để làm điều này, hãy làm theo các bước sau
- Sử dụng trình soạn thảo văn bản ưa thích của bạn để mở my. cnf trên máy chủ của bạn. Vị trí của tôi. cnf tùy thuộc vào bản phân phối Linux của bạn
- Trên CentOS và Fedora, my. tệp cnf nằm trong thư mục /etc
- Trên Debian và Ubuntu, my. tệp cnf nằm trong thư mục /etc/mysql
- trong tôi. cnf, tìm phần [mysqld]
Thêm dòng sau vào phần [mysqld]
service mysql stop
9Lưu các thay đổi vào thư mục của tôi. cnf, sau đó khởi động máy chủ MySQL bằng lệnh thích hợp cho bản phân phối Linux của bạn
Làm thế nào để sửa chữa bảng MySQL bị hỏng?
MySQL được thiết lập trên máy chủ của bạn. .Bước 1. Dừng dịch vụ MySQL và sao lưu dữ liệu. Ban đầu, dừng dịch vụ MySQL bằng lệnh systemctl. .Bước 2. Xác định lỗi. .Bước 3. Sửa chữa bảng bị hỏng. .Bước 4. Tận dụng tùy chọn innodb_force_recovery. .Bước 5. Tạo một tệp mysqldumpLàm cách nào để khôi phục cơ sở dữ liệu MySQL?
Trong Database Explorer, nhấp chuột phải vào kết nối máy chủ mà bạn muốn khôi phục cơ sở dữ liệu và chọn Sao lưu và khôi phục > Khôi phục cơ sở dữ liệu . Trong Trình hướng dẫn khôi phục cơ sở dữ liệu, chọn tệp sao lưu và nhấp vào Khôi phục.