Hướng dẫn mysql disable strict mode - mysql tắt chế độ nghiêm ngặt
Show
$ mysql -u root -p -e "SELECT @@GLOBAL.sql_mode;"26MySQL Strict Mode. The latest versions of PHPKB Knowledge Base Management Software does not require MySQL Strict Mode to be turned OFF. It was a requirement for older versions (version 8 or older) of PHPKB software. $ mysql -u root -p -e "SELECT @@GLOBAL.sql_mode;"25
95 SQL_MODE in my.cnf file (for Linux) OR my.ini file (for windows server) and restarting the MySQL server. my.cnf file can be found in one of a few locations (depending on which distribution you're using). The most common locations are /etc/my.cnf and /etc/mysql/my.cnf .Lưu ý: Thực hiện các thay đổi sau trong My.ini (đối với hệ điều hành Windows) hoặc My.cnf (đối với hệ điều hành Linux). . Nó có thể trông như thế này (giá trị thực của SQL_Mode có thể thay đổi): Make the following changes in the my.ini (for Windows Operating System) or my.cnf (for Linux Operating System). Inside that file, look for a heading like [mysqld] and then look for the value of sql_mode. It might look like this (the actual value of sql_mode may vary):
HOẶC 2. Để tắt chế độ nghiêm ngặt qua SQLPhương pháp này cho phép bạn vô hiệu hóa chế độ nghiêm ngặt trên máy chủ MySQL của mình bằng cách chạy lệnh sau. $ mysql -u root -p -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';" Bây giờ, 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;" Đó là tất cả! & NBSP; Tài liệu đầy đủ để thiết lập các chế độ MySQL có sẵn trên trang Chế độ SQL của máy chủ trong tài liệu MySQL. Một mô tả về tất cả các chế độ cũng có sẵn trên trang đó. 5.1.11 & NBSP; Chế độ SQL máy chủMáy chủ MySQL có thể hoạt động ở các chế độ SQL khác nhau và có thể áp dụng các chế độ này khác nhau cho các máy khách khác nhau, tùy thuộc vào giá trị của biến hệ thống 2. DBA có thể đặt chế độ SQL toàn cầu để phù hợp với các yêu cầu vận hành máy chủ trang web và mỗi ứng dụng có thể đặt chế độ SQL phiên của mình thành các yêu cầu của riêng mình.Các chế độ ảnh hưởng đến cú pháp SQL Hỗ trợ MySQL và kiểm tra xác thực dữ liệu mà nó thực hiện. Điều này giúp sử dụng MySQL dễ dàng hơn trong các môi trường khác nhau và sử dụng MySQL cùng với các máy chủ cơ sở dữ liệu khác.
Để biết câu trả lời cho các câu hỏi thường được hỏi về các chế độ SQL của máy chủ trong MySQL, xem Phần & NBSP; A.3, MYSQL 8.0 FAQ: Máy chủ SQL Chế độ. Khi làm việc với các bảng 3, cũng xem xét biến hệ thống 4. Nó cho phép kiểm tra lỗi bổ sung cho các bảng 3.Đặt chế độ SQLCác chế độ SQL quan trọng nhất Danh sách đầy đủ các chế độ SQL Ghi chú Bởi vì tiếp tục phát triển MySQL định nghĩa các lỗi mới, có thể có các lỗi không có trong danh sách trước đó mà chế độ SQL nghiêm ngặt áp dụng. 5.1.11 & NBSP; Chế độ SQL máy chủ Máy chủ MySQL có thể hoạt động ở các chế độ SQL khác nhau và có thể áp dụng các chế độ này khác nhau cho các máy khách khác nhau, tùy thuộc vào giá trị của biến hệ thống 2. DBA có thể đặt chế độ SQL toàn cầu để phù hợp với các yêu cầu vận hành máy chủ trang web và mỗi ứng dụng có thể đặt chế độ SQL phiên của mình thành các yêu cầu của riêng mình.
Các chế độ ảnh hưởng đến cú pháp SQL Hỗ trợ MySQL và kiểm tra xác thực dữ liệu mà nó thực hiện. Điều này giúp sử dụng MySQL dễ dàng hơn trong các môi trường khác nhau và sử dụng MySQL cùng với các máy chủ cơ sở dữ liệu khác. Để xác định cài đặt toàn cầu hoặc phiên 2 hiện tại, hãy chọn giá trị của nó:
Quan trọng Chế độ SQL và phân vùng do người dùng xác định. & NBSP; Thay đổi chế độ SQL máy chủ sau khi tạo và chèn dữ liệu vào các bảng được phân vùng có thể gây ra những thay đổi lớn trong hành vi của các bảng đó và có thể dẫn đến mất hoặc tham nhũng dữ liệu. Chúng tôi khuyên bạn không bao giờ thay đổi chế độ SQL khi bạn đã tạo các bảng sử dụng phân vùng do người dùng xác định. Changing the server SQL mode after creating and inserting data into partitioned tables can cause major changes in the behavior of such tables, and could lead to loss or corruption of data. It is strongly recommended that you never change the SQL mode once you have created tables employing user-defined partitioning. Khi sao chép các bảng được phân vùng, các chế độ SQL khác nhau trên nguồn và bản sao cũng có thể dẫn đến các vấn đề. Để có kết quả tốt nhất, bạn phải luôn sử dụng cùng chế độ SQL máy chủ trên nguồn và bản sao. Để biết thêm thông tin, xem Phần & NBSP; 24.6, Hạn chế và hạn chế về phân vùng. Các chế độ SQL quan trọng nhấtCác giá trị 2 quan trọng nhất có lẽ là sau:
Khi hướng dẫn này đề cập đến chế độ nghiêm ngặt, thì có nghĩa là một chế độ có hoặc cả 7 hoặc 5 được bật.“strict mode,” it means a mode with
either or both 7 or 5 enabled. Danh sách đầy đủ các chế độ SQLDanh sách sau đây mô tả tất cả các chế độ SQL được hỗ trợ:
Kết hợp các chế độ SQLCác chế độ đặc biệt sau đây được cung cấp dưới dạng tốc ký cho các kết hợp các giá trị chế độ từ danh sách trước.
Chế độ SQL nghiêm ngặtChế độ nghiêm ngặt kiểm soát cách MySQL xử lý các giá trị không hợp lệ hoặc thiếu trong các câu lệnh thay đổi dữ liệu như 2 hoặc 3. Một giá trị có thể không hợp lệ vì một số lý do. Ví dụ, nó có thể có loại dữ liệu sai cho cột hoặc nó có thể nằm ngoài phạm vi. Một giá trị bị thiếu khi một hàng mới được chèn không chứa giá trị cho cột Non -________ 74 không có mệnh đề 27 rõ ràng trong định nghĩa của nó. .Nếu chế độ nghiêm ngặt không có hiệu lực, MySQL chèn các giá trị được điều chỉnh cho các giá trị không hợp lệ hoặc bị thiếu và tạo ra các cảnh báo (xem Phần & NBSP; 13.7.7.42, Báo cáo cảnh báo Show Show). Trong chế độ nghiêm ngặt, bạn có thể tạo ra hành vi này bằng cách sử dụng 7 hoặc 32.Đối với các câu lệnh như 0 không thay đổi dữ liệu, các giá trị không hợp lệ sẽ tạo ra cảnh báo ở chế độ nghiêm ngặt, không phải là lỗi.Chế độ nghiêm ngặt tạo ra lỗi cho các nỗ lực tạo khóa vượt quá độ dài khóa tối đa. Khi chế độ nghiêm ngặt không được bật, điều này dẫn đến cảnh báo và cắt ngắn khóa theo chiều dài khóa tối đa. Chế độ nghiêm ngặt không ảnh hưởng đến liệu các ràng buộc khóa nước ngoài có được kiểm tra hay không. 34 có thể được sử dụng cho điều đó. .Chế độ SQL nghiêm ngặt có hiệu lực nếu 5 hoặc 7 được bật, mặc dù các hiệu ứng của các chế độ này khác nhau phần nào:
Chế độ nghiêm ngặt ảnh hưởng đến việc xử lý phân chia theo 0, 0 ngày và số không theo ngày như sau:
Để biết thêm thông tin về chế độ nghiêm ngặt đối với 6, hãy xem so sánh từ khóa bỏ qua và chế độ SQL nghiêm ngặt.Chế độ nghiêm ngặt ảnh hưởng đến việc xử lý phân chia theo 0, 0 ngày và số 0 trong các ngày kết hợp với các chế độ 0, 9 và 8.So sánh từ khóa bỏ qua và chế độ SQL nghiêm ngặtPhần này so sánh hiệu quả đối với việc thực thi câu lệnh của từ khóa 6 (hạ cấp các lỗi đối với cảnh báo) và chế độ SQL nghiêm ngặt (nâng cấp cảnh báo về lỗi). Nó mô tả những tuyên bố mà chúng ảnh hưởng và lỗi nào họ áp dụng.Bảng sau đây trình bày so sánh tóm tắt về hành vi câu lệnh khi mặc định là tạo ra lỗi so với cảnh báo. Một ví dụ về khi mặc định là tạo ra một lỗi đang chèn 4 vào cột 71. Một ví dụ về khi mặc định là tạo cảnh báo là chèn giá trị của loại dữ liệu sai vào một cột (chẳng hạn như chèn chuỗi 72 vào cột số nguyên).
Với 6
Cảnh báo (giống như không có chế độ SQL mysql> SET sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT CAST(0 AS UNSIGNED) - 1;
ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(cast(0 as unsigned) - 1)' |