Làm cách nào để xuất / nhập cơ sở dữ liệu WordPress (MySQL) đúng cách thông qua dòng lệnh?


7

Thông thường, cơ sở dữ liệu MySQL có thể được xuất và nhập bằng các lệnh SSH đơn giản sau:

Xuất khẩu:

mysqldump -u USERNAME -p DATABASE_NAME > filename.sql

Nhập khẩu:

mysql -u USERNAME -p DATABASE_NAME < filename.sql

Nhưng nó không đơn giản khi nói đến WordPress. Từ những gì tôi thấy, các tham số bổ sung cần được đề cập, chẳng hạn như --add-drop-table.

Codex WordPress không cung cấp một số thông tin , nhưng nó có vẻ lộn xộn và không đủ rõ ràng.

Sẽ thật tuyệt nếu ai đó sử dụng dòng lệnh có thể chia sẻ các lệnh thích hợp để xuất và nhập cơ sở dữ liệu WordPress, với một số giải thích (về bất kỳ tham số mới nào được sử dụng).

Ngoài ra, có bất kỳ lý do nào khiến bạn không nên sử dụng dòng lệnh khi xử lý cơ sở dữ liệu và thay vào đó đi với GUI như phpMyAdmin không?

Câu trả lời:


12

Nó là đơn giản cho Wordpress quá. Tôi sử dụng cách sau để sao lưu các trang WP của mình:

mysqldump -u <user> -p<pass> --quick --extended-insert <db-name> > backup.sql

Tài liệu mysqldump cung cấp các chi tiết về tất cả các tham số.

--extended-insert nhanh hơn khi cập nhật DB từ tệp kết xuất và làm cho tệp kết xuất nhỏ hơn.

--quick làm cho việc tạo ra bãi chứa nhanh hơn.

Bạn không thực sự cần phải sử dụng một trong hai thứ đó, chỉ cần làm mọi thứ nhanh hơn một chút và viết một chèn cho mỗi hàng chỉ khiến tôi cảm thấy hạnh phúc hơn - cú pháp kết xuất ban đầu của bạn sẽ ổn.

Đừng quên rằng mặc dù có các mục cụ thể theo tên miền trong DB, vì vậy nếu bạn đang sử dụng phương pháp này để sao lưu / khôi phục thì bạn vẫn ổn nhưng nếu bạn muốn chuyển từ one.com sang Two.com thì bạn sẽ cần chỉnh sửa mục wp_optionssau khi bạn khôi phục bãi chứa của bạn.


Nhưng làm thế nào về --add-drop-tablevà những thứ như thế được đề cập trên trang codex? codex.wordpress.org/, - bạn có chắc là chúng không cần thiết?
it_me

1
Không cần thiết, với các tùy chọn tôi sử dụng các tệp kết xuất đều có cái này trước bảng tạo và các lần chèn tiếp theo: DROP TABLE IF EXISTS <wp_tablename>; vì vậy các bảng luôn được loại bỏ và sau đó được tạo, sau đó dữ liệu được chèn vào chúng
Steve Claridge

1
Đồng tình với Steve, các lệnh ban đầu của bạn mysqldump -u USERNAME -p PASSWORD DATABASE_NAME > filename.sqlmysql -u USERNAME -p PASSWORD DATABASE_NAME < filename.sql sẽ hoạt động tốt. Điều duy nhất thực sự cảnh giác là chạy chuỗi thay thế ở giữa xuất và nhập nếu di chuyển giữa các tên miền.
neil_pie

1
Là một bản cập nhật liên quan đến các tùy chọn: đây là từ tài liệu mysqldump: Một số tùy chọn mysqldump là viết tắt cho các nhóm tùy chọn khác: Sử dụng --opt giống như chỉ định --add-drop-table, --add-lock, - -create-Tùy chọn, --disable-key, --extends-insert, --lock-bảng, --quick và --set-charset. Tất cả các tùy chọn --opt là viết tắt của mặc định cũng được bật bởi vì --opt được bật theo mặc định.
neil_pie

cũng hữu ích cho việc di chuyển được thêm vào--compatible=mysql40
KWubbufetowicz

1

Đã đầu tư thời gian để tìm hiểu những điều cơ bản của dòng lệnh, tôi đang sử dụng phpMyAdmin ngày càng ít hơn. Tuy nhiên, tôi thấy dễ dàng hơn khi tôi cần duyệt hoặc chỉnh sửa một mục (chẳng hạn như chỉnh sửa các wp_optionsmục, như Steve đề cập ở trên). Tôi cũng đã từng truy cập GUI khi tôi muốn loại trừ một bảng đặc biệt lớn (như nhật ký của plugin) không cần sao lưu. Nhưng tôi đã phát hiện ra bạn chỉ có thể thêm

--ignore-table=my_db_name.my_table_name my_db_name

0

Để sao chép một trang web đến một vị trí mới.

sử dụng --add-drop-table trong khi xuất, nếu bạn đang nhập vào cơ sở dữ liệu trống. bỏ qua --add-drop-bảng trong khi xuất, nếu bạn đang nhập để hợp nhất cơ sở dữ liệu.

Hãy nhớ cập nhật wp_options sau khi nhập mỗi lần, vì đường dẫn là khác nhau. Ngoài ra, cập nhật tệp .htaccess với đường dẫn mới.

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.