Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xuất cơ sở dữ liệu MySQL hoặc MariaDB

Thường xuyên sao lưu cơ sở dữ liệu là một trong những bước quan trọng sau khi đưa dự án vào hoạt động. Tần suất sao lưu có thể là một lần trong một ngày hoặc một tuần. Việc sao lưu hàng ngày được ưu tiên cho các ứng dụng mà việc thay đổi cơ sở dữ liệu thường xuyên hơn. Trong trường hợp cơ sở dữ liệu có tính khả dụng cao, việc thiết lập cụm thích hợp phải được xem xét thay vì mở rộng quy mô theo chiều dọc. Hướng dẫn này giải thích cách sử dụng mysqldump lệnh để thực hiện sao lưu cơ sở dữ liệu. Lệnh tương tự có thể được tự động hóa để thực hiện các bản sao lưu theo lịch trình.

Ghi chú :Hướng dẫn này chỉ bao gồm các tùy chọn phổ biến nhất được sử dụng với mysqldump yêu cầu. Bạn cũng có thể tham khảo tài liệu chính thức để khám phá tất cả các tùy chọn khả thi. Các lệnh tương tự có thể được sử dụng để sao lưu cả máy chủ cơ sở dữ liệu MySQL và MariaDB.

Sao lưu cục bộ

Sao lưu - Phần này giải thích việc sao lưu cục bộ trong một tệp bằng cách xuất một hoặc nhiều cơ sở dữ liệu.

Quyền - mysqldump yêu cầu các đặc quyền được liệt kê dưới đây để xuất cơ sở dữ liệu. Các đặc quyền thích hợp phải được chỉ định cho tài khoản người dùng được sử dụng để xuất cơ sở dữ liệu.

  • CHỌN - để kết xuất các bảng
  • HIỂN THỊ CHẾ ĐỘ XEM - để kết xuất lượt xem
  • TRIGGER - để kết xuất các trình kích hoạt
  • BẢNG KHÓA - trong trường hợp - tùy chọn giao dịch đơn lẻ không được sử dụng

Lệnh - Dưới đây được đề cập là việc sử dụng mysqldump lệnh để sao lưu cục bộ cho cả hệ thống dựa trên Windows và Linux bao gồm cả Ubuntu. Dấu ba chấm có nghĩa là nhiều giá trị có thể được cung cấp.

# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>

Các ví dụ để sử dụng lệnh thông thường như được đề cập bên dưới. Các lệnh mẫu này đang sử dụng người dùng doanh nghiệp để sao lưu cơ sở dữ liệu doanh nghiệp . Không cần chỉ định người dùng và mật khẩu trong trường hợp tài khoản người dùng đang sử dụng auth_socket thuật toán đăng nhập vào máy chủ MySQL. Người sử dụng hệ thống có thể truy cập trực tiếp vào cơ sở dữ liệu. Bạn có thể tham khảo Cách sử dụng mật khẩu gốc với MySQL 5.7 và Cách cài đặt MySQL 8 trên Ubuntu để tìm hiểu thêm về các thuật toán mật khẩu.

Ghi chú :Không cần sử dụng tùy chọn -p, trong trường hợp không có mật khẩu nào được chỉ định cho người dùng.

Dưới đây được đề cập là các ví dụ để sao lưu một cơ sở dữ liệu duy nhất với tên người dùng, máy chủ lưu trữ và cổng. Mật khẩu không được cung cấp với các lệnh này cho mục đích bảo mật. Bạn có thể chỉ định mật khẩu cho mysqldump trong tệp cấu hình được coi là tùy chọn an toàn cho cron việc làm. Một tùy chọn khác là sử dụng lệnh cat để sử dụng mật khẩu được mã hóa (tương tự như cách Plesk đang sử dụng) như trong các ví dụ. Hệ thống sẽ nhắc nhập mật khẩu trong trường hợp mật khẩu không được cung cấp trong lệnh. Các lệnh này có thể được sử dụng để xuất toàn bộ cơ sở dữ liệu hoặc một hoặc nhiều bảng.

# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql

# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql

# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql

# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql

# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql

# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql

Dưới đây được đề cập là các ví dụ để sao lưu nhiều cơ sở dữ liệu với tên người dùng, máy chủ và cổng.

# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql

# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql

Dưới đây được đề cập là ví dụ để sao lưu tất cả cơ sở dữ liệu với tên người dùng, máy chủ và cổng.

# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql

# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql

Người dùng PowerShell trên Windows sẽ cần lệnh khác như được đề cập bên dưới.

# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>

# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql

Các lệnh nêu trên sẽ xuất cơ sở dữ liệu và bảng đã chọn đến vị trí tệp được chỉ định trong lệnh.

Sao lưu cơ sở dữ liệu

Phần này giải thích việc sao lưu cơ sở dữ liệu sang một cơ sở dữ liệu khác được sử dụng cho mục đích sao lưu bằng cách sử dụng Shell Pipes. Chúng tôi có thể xuất cơ sở dữ liệu sang tệp cục bộ và sau đó sử dụng tệp này để nhập sang cơ sở dữ liệu khác hoặc xuất trực tiếp sang cơ sở dữ liệu khác bằng cách sử dụng shell pipe.

Lệnh được đề cập dưới đây có thể được sử dụng để xuất cơ sở dữ liệu trực tiếp sang cơ sở dữ liệu khác. Ngoài ra, hãy đảm bảo rằng bạn có quyền truy cập vào cả hai máy chủ trước khi thực hiện lệnh.

# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup

# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise

Đây là cách chúng tôi có thể xuất hoặc sao lưu cơ sở dữ liệu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để biết bộ ký tự của cơ sở dữ liệu / bảng / cột MySQL là gì?

  2. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 9.04 (Jaunty)

  3. MySQL trên Docker - Cách chứa cơ sở dữ liệu của bạn:Sách trắng mới

  4. Python &MySql:Unicode và mã hóa

  5. MySQL bỏ qua 10 kết quả đầu tiên