tôi sao lưu cơ sở dữ liệu sản xuất của tôi với lệnh sau:mysql khôi phục cơ sở dữ liệu khác nhau
mysqldump -u root --opt --skip-extended-insert --databases my_production_db
Kết quả là tập tin dump có những dòng sau gần đầu:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_production_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `my_production_db `;
Để khôi phục lại cơ sở dữ liệu đến một điểm đến khác. my_debvelopment_db
Tôi phải mở tệp kết xuất và chỉnh sửa các bit trong đó cơ sở dữ liệu được đặt tên.
Sau đó, tôi chạy:
mysql -u root -p <password> < mydumpfile
tôi đã không tìm ra một cách khác để làm điều đó.
Khi cơ sở dữ liệu trở nên lớn hơn, điều này trở nên không thực tế.
Tôi có thiếu gì đó không? Cant tôi bằng cách nào đó xác định nơi tôi muốn khôi phục lại cơ sở dữ liệu? Tôi có cần lệnh sao lưu khác không?
Mặc dù không có một 'tùy chọn --databases', dường như' mysqldump' vẫn có thể tạo tham chiếu đến tên cơ sở dữ liệu trong kết xuất. Ít nhất tôi gặp vấn đề với một số 'ALTER DATABASE \' dbname \ 'CHARACTER SET utf8 COLLATE utf8_bin' trong một kết xuất cơ sở dữ liệu, trong khi không sử dụng tùy chọn' --databases'. Và có hai trong số đó, lần thứ hai ghi đè đầu tiên. – Hibou57