Tính năng này được bật theo mặc định nhưng bạn có thể tắt nó theo một trong một số cách.
Trước tiên, hãy xác minh (các) chế độ MYSQL đang chạy với:
$ mysql -u root -p -e "SHOW VARIABLES LIKE 'sql_mode';"
Bạn sẽ cần thay thế root bằng bất kỳ tên người dùng nào có quyền siêu người dùng trên máy chủ của bạn (nhưng thường chỉ là root ). Bạn cũng sẽ được nhắc nhập mật khẩu.
Điều này sẽ in ra một cái gì đó như thế này (nhưng đẹp hơn nhiều):
sql_mode : ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Tài liệu đầy đủ để thiết lập chế độ MySQL có sẵn trênChế độ SQL máy chủtrang trong Tài liệu MySQL. Một mô tả của tất cả các chế độ cũng có sẵntrên trang đó.
1. Để tắt Chế độ nghiêm ngặt qua SQL:
Bạn có thể tắt chế độ nghiêm ngặt trên máy chủ MySQL của mình bằng cách chạy lệnh sau trên dòng lệnh của Linode:
$ mysql -u root -p -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';"
Bạn cũng có thể đặt các giá trị khác cho sql_mode . Nhìn thấychế độ sysvar sql_modetrong Tài liệu MySQL để biết danh sách.
Sau đó, bạn có thể xác minh rằng chế độ được đặt bằng cách chạy như sau:
$ mysql -u root -p -e "SELECT @@GLOBAL.sql_mode;"
hoặc
2. Tắt Chế độ nghiêm ngặt qua my.cnf:
Vô hiệu hóa nó bằng cách đặt SQL_MODE của riêng bạn trong tệp my.cnf , sau đó khởi động lại MySQL.
Bạn có thể tìm thấy tệp my.cnf ở một trong số ít vị trí (tùy thuộc vào bản phân phối bạn đang sử dụng). Các vị trí phổ biến nhất là /etc/my.cnf và /etc/mysql/my.cnf .
Bên trong my.cnf , hãy tìm tiêu đề giống như vậy [mysqld]rồi tìm giá trị của sql_mode. Nó có thể trông như thế này (giá trị thực của sql_mode có thể thay đổi):
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Bạn có thể thay đổi giá trị của sql_mode thành NO_ENGINE_SUBSTITUTION để tắt hoàn toàn chế độ nghiêm ngặt, nhưng bạn có thể muốn tra cứu từng chế độ được định cấu hình trước khi tắt chế độ đó.
Nếu sql_mode chưa được đặt, bạn có thể thêm nó vào dưới [mysqld]tiêu đề, sau đó lưu tệp và khởi động lại MySQL.