Làm thế nào để khôi phục cơ sở dữ liệu mysql từ các tệp vật lý?


12

Tôi vừa cài đặt lại hệ thống của mình, tôi không thực hiện sao lưu kết xuất nhưng tôi vẫn có thư mục vật lý của các bản cài đặt mysql trước đây.

Có thể sử dụng nó để khôi phục và cập nhật cấu hình hiện tại của tôi không?

Câu trả lời:


11

Điều đó có thể, nhưng không được đề xuất. Nếu tôi định thử nó, đây là cách tôi sẽ làm.

  1. Cài đặt mysql, cấu hình càng gần máy chủ cũ càng tốt hoặc chỉ sử dụng cùng một cấu hình. Hãy chắc chắn rằng nó bắt đầu, khởi động lại và bạn có thể đăng nhập vào nó. Bây giờ hãy tắt mysql.

  2. Di chuyển cài đặt cũ ra khỏi đường với mv /var/lib/mysql /var/lib/mysql.orig

  3. rsync hoặc sao chép các tập tin mới vào vị trí. sudo rsync -av /old/mysql/ /var/lib/mysql/Tôi khuyên bạn nên giữ các tệp gốc ở trạng thái hiện tại của chúng trong trường hợp điều này không hoạt động.

  4. sudo chown -R mysql: /var/lib/mysqlvà sau đó bắt đầu mysql. Kiểm tra nhật ký, đảm bảo mọi thứ sẽ tốt và sau đó đăng nhập vào Mysql. Chọc xung quanh để đảm bảo có vẻ như dữ liệu của bạn ở đó.

Giả sử tất cả diễn ra suôn sẻ, bạn nên được thiết lập. Bây giờ hãy lập tức quay lại Mysql để bạn không phải làm điều vô nghĩa này vào lần tới.


1
Tôi sẽ cẩn thận thực hiện bước 2 ở trên trước bước 1. Bạn muốn chắc chắn rằng việc cài đặt và bắt đầu mysqld không ghi đè lên cơ sở dữ liệu hệ thống cũ của bạn.
malcolmpdx

Đó là một điểm hay. Tôi giả sử rằng / var / lib / mysql không phải từ bản cài đặt gốc. Trong mọi trường hợp, có, đảm bảo các tệp gốc của bạn không ở / var / lib / mysql trước khi bạn bắt đầu điều này. Bạn muốn bắt đầu với một phiên bản Mysql mới trước khi bạn bắt đầu thử tải dữ liệu gốc của mình.
kashani

cảm ơn bạn Tôi đã sửa đổi một chút bước để thích ứng với môi trường Zend Server CE & MacOS của tôi và nó hoạt động!
John

@Kashani tôi đã làm theo các hướng dẫn này (centos) nhưng trên máy chủ mới, tôi nhận được bảng để hiển thị nhưng dữ liệu và bảng không .. có ý tưởng nào không? tôi thấy tất cả các bảng bên trong thư mục mà chúng không hiển thị (cũng có vẻ như đó là bộ ký tự phù hợp)
K2xL

2
@ K2xL Tôi không chắc bạn đang nhìn thấy gì. Nếu bạn tạo một câu hỏi mới với các chi tiết về những gì bạn đang thấy và cách bạn hoàn thành nó, tôi rất vui khi xem nó. Hãy nhớ rằng phương thức trên chỉ hoạt động cho toàn bộ cài đặt Mysql chứ không phải cơ sở dữ liệu riêng lẻ vì các bảng Innodb có dữ liệu được lưu trữ trong các tệp ibdata chính bất kể bạn có sử dụng innodb_file_per_table hay không.
kashani
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.