Sử dụng log_bin_trust_feft_creators trong MySQL


14

Việc sử dụng là log_bin_trust_function_creatorsgì? Ngoài ra, là giá trị của tham số động? Nó sẽ thay đổi nếu tôi khởi động lại dịch vụ MySQL của mình?

Câu trả lời:


12

Biến này kiểm soát việc ghi nhật ký nhị phân có nên tin tưởng người tạo chức năng được lưu trữ không tạo các hàm được lưu trữ sẽ gây ra các sự kiện không an toàn. Ví dụ. có chức năng UUID.

Điều này đã được giải thích tốt trong tài liệu:

Khi bạn tạo một hàm được lưu trữ, bạn phải khai báo rằng nó có tính xác định hoặc nó không sửa đổi dữ liệu. Mặt khác, nó có thể không an toàn để phục hồi hoặc sao chép dữ liệu.

Theo mặc định, để một câu lệnh TẠO CHỨC NĂNG được chấp nhận, ít nhất một trong các DỮ LIỆU XÁC ĐỊNH, KHÔNG CÓ SQL hoặc READS phải được chỉ định rõ ràng. Nếu không, sẽ xảy ra lỗi:

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

Để thư giãn các điều kiện trước khi tạo chức năng (rằng bạn phải có đặc quyền SUPER và hàm phải được khai báo xác định hoặc không sửa đổi dữ liệu), đặt biến hệ thống log_bin_trust_feft_creators toàn cầu thành 1.

Tham khảo: tài liệu mysql (đọc phần này như nó giải thích với ví dụ.)

Về câu hỏi thứ hai của bạn, nếu nó động và nó sẽ thay đổi nếu bạn khởi động lại máy chủ:

  • Có nó là một biến động.

  • Biến sẽ thay đổi khi khởi động lại, nếu bạn không cập nhật cấu hình để phản ánh thay đổi.

Tham khảo: mysql-document-again


nó có một giá trị boolean? Phải nó được đặt thành TRUE cho tôi .. điều đó có nghĩa là '1'?
tesla747

mysql> select if(1 is true,'TRUE','FALSE')\G *************************** 1. row *************************** if(1 is true,'TRUE','FALSE'): TRUE
mysql_user

Ok tôi hiểu điều đó. Nhưng có cần thiết phải thay đổi nó thành '1' đặc biệt cho tham số đó không? Bây giờ kể từ khi tôi đặt nó là TRUE, khi tôi khởi động lại dịch vụ mysql, nó sẽ thay đổi một lần nữa
tesla747

1
Đúng rồi! Vì vậy, để làm cho nó bền bỉ, bạn cũng nên đặt cùng một giá trị cấu hình trong tệp my.cnf của mình.
mysql_user

1
@ tesla747 yep ... nó áp dụng khi đăng nhập nhị phân được bật.
mysql_user 29/07/2015
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.