Máy chủ cơ sở dữ liệu MySQL tạo tệp nhật ký nhị phân cho mọi giao dịch với cơ sở dữ liệu, miễn là quản trị viên không tắt hoặc nhận xét tham số “log-bin” trong tệp cấu hình my.cny. Các tệp nhật ký nhị phân được viết ở định dạng nhị phân. Mặc dù nhật ký nhị phân, hay còn được gọi là logbin chủ yếu được sử dụng cho mục đích sao chép cơ sở dữ liệu MySQL, đôi khi bạn có thể cần phải kiểm tra hoặc đọc nội dung của nhật ký nhị phân ở định dạng văn bản, nơi tiện ích mysqlbinlog sẽ có ích.
Tệp nhật ký nhị phân, thường có tên với định dạng host_name-bin.xxxxxx và lưu trữ trong thư mục / var / lib / mysql, không thể mở và đọc ngay lập tức vì nó ở định dạng nhị phân không thể đọc được. Để đọc nhật ký nhị phân ở định dạng văn bản, chúng ta có thể sử dụng lệnh mysqlbinlog, lệnh này cũng có thể đọc các tệp nhật ký chuyển tiếp được viết bởi máy chủ phụ trong một thiết lập sao chép. Nhật ký chuyển tiếp có cùng định dạng với tệp nhật ký nhị phân.
Để sử dụng tiện ích mysqlbinlog rất đơn giản, chỉ cần sử dụng cú pháp lệnh sau để gọi mysqlbinlog sau khi đăng nhập bằng quyền root (nếu không bạn phải chỉ định tên người dùng và mật khẩu) để shell qua SSH:
mysqlbinlog [options] log_file ...
Vì vậy, để đọc và hiển thị nội dung của tệp nhật ký nhị phân có tên binlog.000001, hãy sử dụng lệnh này:
mysqlbinlog binlog.000001
Các tệp nhật ký nhị phân và dữ liệu của nó có thể rất lớn, do đó, hầu như không thể đọc bất kỳ thứ gì trên màn hình. Tuy nhiên, bạn có thể chuyển đầu ra của mysqlbinlog thành một tệp có thể được mở để duyệt sau trong trình soạn thảo văn bản, bằng cách sử dụng lệnh sau:
mysqlbinlog binlog.000001 > filename.txt
Để giảm lượng dữ liệu được truy xuất từ nhật ký nhị phân, có một số tùy chọn có thể được sử dụng để giới hạn dữ liệu được trả về. Trong số những điều hữu ích được liệt kê dưới đây:
–start-datetime =datetime
Bắt đầu đọc nhật ký nhị phân ở sự kiện đầu tiên có dấu thời gian bằng hoặc muộn hơn đối số datetime. Giá trị ngày giờ liên quan đến múi giờ địa phương trên máy mà bạn chạy mysqlbinlog. Giá trị phải ở định dạng được chấp nhận cho kiểu dữ liệu DATETIME hoặc TIMESTAMP. Ví dụ:
mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000001
–stop-datetime =datetime
Dừng đọc nhật ký nhị phân ở sự kiện đầu tiên có dấu thời gian bằng hoặc sau đối số datetime. Tùy chọn này hữu ích cho việc khôi phục tại thời điểm. Xem mô tả của tùy chọn –start-datetime để biết thông tin về giá trị datetime.
–start-position =N
Bắt đầu đọc nhật ký nhị phân ở sự kiện đầu tiên có vị trí bằng đối số N. Tùy chọn này áp dụng cho tệp nhật ký đầu tiên có tên trên dòng lệnh.
–stop-position =N
Dừng đọc nhật ký nhị phân ở sự kiện đầu tiên có vị trí bằng hoặc lớn hơn N đối số. Tùy chọn này áp dụng cho tệp nhật ký cuối cùng có tên trên dòng lệnh.
Để biết thêm thông tin sử dụng trên mysqlbinlog, hãy truy cập vào đây.