Lệnh nào sau đây có thể được sử dụng để kết xuất 5 hàng đầu tiên của bảng từ cơ sở dữ liệu của bạn trong giao diện dòng lệnh MySQL của Cloud IDE?
Đối với hầu hết các công việc cơ sở dữ liệu, tôi sử dụng phpMyAdmin. Tuy nhiên, trong một dịp hiếm hoi, tôi gặp phải một lỗi lạ - khi xem xét các ràng buộc khóa ngoại của bạn - tôi chọn sử dụng dấu nhắc lệnh của Windows. Tôi làm điều này vì a) khắc phục sự cố cơ sở dữ liệu nằm ngoài khả năng của tôi và b) tôi cần hoàn thành công việc bất chấp điều đó. Ngoài ra, các lỗi trong phpMyAdmin thường không tồn tại khi thực hiện cùng một tác vụ trong dấu nhắc lệnh của Windows (đối với các lệnh tôi chạy) Show
Kết xuất và khôi phục cơ sở dữ liệu MySQL trên dấu nhắc lệnh của Windows là một quy trình đơn giản
Đó là nó. Chúng tôi đã kết xuất và khôi phục thành công cơ sở dữ liệu MySQL bằng dấu nhắc lệnh của Windows Ứng dụng khách --fields-enclosed-by='"'5 là một chương trình sao lưu được viết bởi Igor Romanenko. Nó có thể được sử dụng để kết xuất cơ sở dữ liệu hoặc tập hợp cơ sở dữ liệu để sao lưu hoặc chuyển sang máy chủ cơ sở dữ liệu khác (không nhất thiết phải là MariaDB hoặc MySQL). Kết xuất thường chứa các câu lệnh SQL để tạo bảng, điền vào bảng hoặc cả hai. Tuy nhiên, --fields-enclosed-by='"'5 cũng có thể được sử dụng để tạo tệp ở định dạng CSV, văn bản được phân tách khác hoặc định dạng XML Nếu bạn đang thực hiện sao lưu trên máy chủ và tất cả các bảng của bạn đều là bảng MyISAM, hãy cân nhắc sử dụng mysqlhotcopy thay vì nó có thể thực hiện sao lưu nhanh hơn và khôi phục nhanh hơn mysqldump kết xuất các trình kích hoạt cùng với các bảng, vì đây là một phần của định nghĩa bảng. Tuy nhiên, các thủ tục, chế độ xem và sự kiện được lưu trữ thì không và cần tạo lại các tham số bổ sung một cách rõ ràng (ví dụ: --fields-enclosed-by='"'8 và --fields-enclosed-by='"'9). Tuy nhiên, các thủ tục và chức năng cũng là một phần của bảng hệ thống (ví dụ mysql. thủ tục) --fields-enclosed-by='"'5 hỗ trợ các cải tiến để BẮT ĐẦU GIAO DỊCH BẰNG TIN NHẮN TUYỆT VỜI Hiệu suấtmysqldump thường không tiêu tốn nhiều tài nguyên CPU trên phần cứng hiện đại vì theo mặc định, nó sử dụng một luồng đơn. Phương pháp này tốt cho một máy chủ được tải nặng Tuy nhiên, đầu vào/đầu ra của đĩa mỗi giây (IOPS) có thể tăng lên vì nhiều lý do. Khi bạn sao lưu trên cùng một thiết bị với cơ sở dữ liệu, điều này sẽ tạo ra IOPS ngẫu nhiên không cần thiết. Quá trình kết xuất được thực hiện tuần tự, trên cơ sở từng bảng, gây ra quá trình quét toàn bộ bảng và bỏ sót nhiều trang bộ đệm trên các bảng không được lưu hoàn toàn vào bộ nhớ đệm Bạn nên sao lưu từ một vị trí mạng để xóa đĩa IOPS trên máy chủ cơ sở dữ liệu, nhưng điều quan trọng là sử dụng một cạc mạng riêng để giữ băng thông mạng khả dụng cho lưu lượng truy cập thường xuyên Mặc dù mysqldump theo mặc định sẽ bảo toàn tài nguyên của bạn cho các đĩa trục chính thông thường và phần cứng lõi thấp, nhưng điều này không có nghĩa là các kết xuất đồng thời không thể hưởng lợi từ kiến trúc phần cứng như SAN, bộ lưu trữ flash, khối lượng công việc ghi thấp. Thời gian sao lưu sẽ được hưởng lợi từ một công cụ như MyDumper Cách sử dụngCó bốn cách chung để gọi --fields-enclosed-by='"'5 shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] --databases db_name ... shell> mysqldump [options] --all-databases shell> mysqldump [options] --system=[option_list] Nếu bạn không đặt tên cho bất kỳ bảng nào sau db_name hoặc nếu bạn sử dụng tùy chọn --fields-enclosed-by=0x222 hoặc --fields-enclosed-by=0x223, thì toàn bộ cơ sở dữ liệu sẽ bị hủy Theo mặc định, --fields-enclosed-by='"'5 không kết xuất cơ sở dữ liệu INFORMATION_SCHEMA (hoặc PERFORMANCE_SCHEMA, nếu được bật). MariaDB kết xuất --fields-enclosed-by=0x225 nếu bạn đặt tên rõ ràng cho nó trên dòng lệnh, mặc dù hiện tại bạn cũng phải sử dụng tùy chọn --fields-enclosed-by=0x226 Để xem danh sách các tùy chọn mà phiên bản --fields-enclosed-by='"'5 của bạn hỗ trợ, hãy thực thi --fields-enclosed-by=0x228 Hàng theo hàng so với. đệm--fields-enclosed-by='"'5 có thể truy xuất và kết xuất từng hàng nội dung của bảng hoặc có thể truy xuất toàn bộ nội dung từ một bảng và lưu vào bộ nhớ đệm trước khi kết xuất. Bộ đệm trong bộ nhớ có thể là một vấn đề nếu bạn kết xuất các bảng lớn. Để kết xuất bảng theo từng hàng, hãy sử dụng tùy chọn --fields-enclosed-by='"'50 (hoặc --fields-enclosed-by='"'51, cho phép --fields-enclosed-by='"'50). Tùy chọn --fields-enclosed-by='"'51 (và do đó là --fields-enclosed-by='"'50) được bật theo mặc định, vì vậy để bật bộ nhớ đệm, hãy sử dụng --fields-enclosed-by='"'55 --fields-enclosed-by='"'5 trong MariaDB 10. 3 bao gồm logic để phục vụ cho mysql. bảng giao dịch_đăng ký. Không thể sử dụng --fields-enclosed-by='"'5 từ bản phát hành MariaDB trước đó trên MariaDB 10. 3 và hơn thế nữa mysqldump và các phiên bản cũ của MySQLNếu bạn đang sử dụng phiên bản gần đây của --fields-enclosed-by='"'5 để tạo kết xuất được tải lại vào máy chủ MySQL rất cũ, bạn không nên sử dụng tùy chọn --fields-enclosed-by='"'51 hoặc --fields-enclosed-by='"'50. Sử dụng --fields-enclosed-by='"'51 thay thế Tùy chọn--fields-enclosed-by='"'5 hỗ trợ các tùy chọn sau Tùy chọn nhómMột số tùy chọn --fields-enclosed-by='"'5 là cách viết tắt của các nhóm tùy chọn khác
Để đảo ngược tác dụng của một tùy chọn nhóm, hãy sử dụng biểu mẫu --fields-enclosed-by='"'51 của nó ( --fields-enclosed-by='"'51 hoặc --fields-enclosed-by='"'53). Cũng có thể chỉ chọn một phần tác dụng của tùy chọn nhóm bằng cách theo dõi nó với các tùy chọn bật hoặc tắt các tính năng cụ thể. Dưới đây là một số ví dụ
Khi bạn bật hoặc tắt có chọn lọc hiệu ứng của một tùy chọn nhóm, thứ tự rất quan trọng vì các tùy chọn được xử lý trước đến cuối. Ví dụ: --fields-enclosed-by='"'58 --fields-enclosed-by='"'50 --fields-enclosed-by='"'51 sẽ không có tác dụng như mong muốn; Các ký tự đặc biệt trong các giá trị tùy chọnMột số tùy chọn, như shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] --databases db_name ... shell> mysqldump [options] --all-databases shell> mysqldump [options] --system=[option_list]50, chấp nhận một chuỗi. Chuỗi có thể được trích dẫn, nếu cần thiết. Ví dụ: trên các hệ thống Unix, đây là tùy chọn để đặt các trường trong dấu ngoặc kép --fields-enclosed-by='"' Một cách khác để chỉ định giá trị thập lục phân của một ký tự. Ví dụ: cú pháp sau hoạt động trên mọi nền tảng --fields-enclosed-by=0x22 Tệp tùy chọnNgoài việc đọc các tùy chọn từ dòng lệnh, --fields-enclosed-by='"'5 cũng có thể đọc các tùy chọn từ các tệp tùy chọn. Nếu một tùy chọn không xác định được cung cấp cho --fields-enclosed-by='"'5 trong tệp tùy chọn, thì tùy chọn đó sẽ bị bỏ qua Các tùy chọn sau đây liên quan đến cách các công cụ dòng lệnh của MariaDB xử lý các tệp tùy chọn. Chúng phải được đưa ra làm đối số đầu tiên trên dòng lệnh Trong MariaDB 10. 2 trở lên, --fields-enclosed-by='"'5 được liên kết với MariaDB Connector/C. Tuy nhiên, Trình kết nối MariaDB/C chưa xử lý việc phân tích cú pháp các tệp tùy chọn cho máy khách này. Điều đó vẫn được thực hiện bởi mã phân tích tệp tùy chọn máy chủ. Xem MDEV-19035 để biết thêm thông tin Nhóm tùy chọn--fields-enclosed-by='"'5 đọc các tùy chọn từ các nhóm tùy chọn sau từ các tệp tùy chọn Các giá trị NULL, ´NULL´ và rỗng trong XMLĐối với một cột có tên là shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] --databases db_name ... shell> mysqldump [options] --all-databases shell> mysqldump [options] --system=[option_list]55, giá trị shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] --databases db_name ... shell> mysqldump [options] --all-databases shell> mysqldump [options] --system=[option_list]56, một chuỗi rỗng và giá trị chuỗi shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] --databases db_name ... shell> mysqldump [options] --all-databases shell> mysqldump [options] --system=[option_list]57 được phân biệt với nhau trong đầu ra do tùy chọn này tạo ra như sau Đầu ra từ máy khách mysql khi chạy bằng tùy chọn shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] --databases db_name ... shell> mysqldump [options] --all-databases shell> mysqldump [options] --system=[option_list]58 cũng tuân theo các quy tắc trước đó Đầu ra XML từ mysqldump bao gồm không gian tên XML, như được hiển thị ở đây --fields-enclosed-by='"'5 phục hồiĐể khôi phục bản sao lưu được tạo bằng mysqldump, hãy sử dụng ứng dụng khách mysql để nhập kết xuất chẳng hạn --fields-enclosed-by='"'5 BiếnBạn cũng có thể đặt các biến sau (_______659) và các tùy chọn boolean --fields-enclosed-by=0x2290 bằng cách sử dụng ví dụMột cách sử dụng phổ biến của --fields-enclosed-by='"'5 là tạo bản sao lưu toàn bộ cơ sở dữ liệu --fields-enclosed-by='"'5 Bạn có thể tải lại tệp kết xuất vào máy chủ như thế này --fields-enclosed-by='"'5 Hoặc như thế này --fields-enclosed-by=0x223 --fields-enclosed-by='"'5 cũng rất hữu ích để tạo cơ sở dữ liệu bằng cách sao chép dữ liệu từ máy chủ MariaDB này sang máy chủ MariaDB khác shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] --databases db_name ... shell> mysqldump [options] --all-databases shell> mysqldump [options] --system=[option_list]5 Có thể kết xuất một số cơ sở dữ liệu bằng một lệnh --fields-enclosed-by=0x229 Để kết xuất tất cả cơ sở dữ liệu, hãy sử dụng tùy chọn --fields-enclosed-by=0x223 --fields-enclosed-by='"'0 Đối với các bảng InnoDB, --fields-enclosed-by='"'5 cung cấp cách tạo bản sao lưu trực tuyến --fields-enclosed-by='"'1 Bản sao lưu này có khóa đọc toàn cầu trên tất cả các bảng (sử dụng --fields-enclosed-by=0x2295) khi bắt đầu kết xuất. Ngay sau khi có được khóa này, tọa độ nhật ký nhị phân được đọc và khóa được giải phóng. Nếu các câu lệnh cập nhật dài đang chạy khi câu lệnh FLUSH được đưa ra, máy chủ MariaDB có thể bị đình trệ cho đến khi các câu lệnh đó kết thúc. Sau đó, kết xuất sẽ không bị khóa và không làm phiền việc đọc và ghi trên bảng. Nếu các câu lệnh cập nhật mà máy chủ MariaDB nhận được ngắn (về thời gian thực hiện), thời gian khóa ban đầu sẽ không đáng chú ý, ngay cả với nhiều bản cập nhật Để khôi phục tại thời điểm (còn được gọi là "cuộn về phía trước", khi bạn cần khôi phục bản sao lưu cũ và phát lại các thay đổi đã xảy ra kể từ bản sao lưu đó), thường rất hữu ích khi xoay nhật ký nhị phân hoặc ít nhất là biết --fields-enclosed-by='"'2 Hoặc --fields-enclosed-by='"'3 Các tùy chọn --fields-enclosed-by=0x2296 và --fields-enclosed-by=0x2297 có thể được sử dụng đồng thời, cung cấp một cách thuận tiện để tạo bản sao lưu trực tuyến phù hợp để sử dụng trước khi khôi phục tại thời điểm nếu các bảng được lưu trữ bằng công cụ lưu trữ InnoDB Làm cách nào để kết xuất một bảng trong MySQL?MySQL Workbench để sao lưu cơ sở dữ liệu . Trên bảng Quản trị, nhấp vào Xuất dữ liệu. . Trên tab Chọn đối tượng > Bảng để xuất, hãy chọn lược đồ sakila Trong Tùy chọn Xuất, hãy chọn Xuất sang Thư mục Dự án Kết xuất nếu bạn muốn các bảng cơ sở dữ liệu được lưu trữ riêng biệt. . Để tạo tệp sao lưu, hãy nhấp vào Bắt đầu xuất Làm cách nào để kết xuất cơ sở dữ liệu MySQL bằng dòng lệnh?sql là tên tệp. Nhập mật khẩu cơ sở dữ liệu để bắt đầu MySQL xuất Dòng lệnh cơ sở dữ liệu vào tệp được đề cập. Bây giờ hãy kết nối với máy chủ bằng FTP và điều hướng đến thư mục để tải xuống tệp dữ liệu đã xuất. Đây là cách bạn có thể thực hiện phương thức dòng lệnh xuất cơ sở dữ liệu MySQL
Làm cách nào để kết xuất cơ sở dữ liệu MySQL trong Linux?Sao lưu cơ sở dữ liệu bằng lệnh sau. . mysqldump -u [tên người dùng] –p[mật khẩu] [tên_cơ sở dữ liệu] > [dump_file. sql] [tên người dùng] - Tên người dùng MySQL hợp lệ [password] - Mật khẩu MySQL hợp lệ cho người dùng [database_name] - Tên cơ sở dữ liệu hợp lệ bạn muốn sao lưu [tập tin dump Làm cách nào để tạo một kết xuất cơ sở dữ liệu MySQL?Kết nối với cơ sở dữ liệu MySQL của bạn Nhấp vào Máy chủ trên thanh công cụ chính Chọn Xuất dữ liệu Chọn các bảng bạn muốn sao lưu Trong Tùy chọn xuất, hãy chọn nơi bạn muốn lưu kết xuất của mình. . Nhấp vào Bắt đầu xuất. . Bây giờ bạn có một phiên bản sao lưu của trang web của bạn |