Loại bỏ nghiêm ngặt_trans_tables mysql
Nếu bạn còn nhớ bài viết của tôi Cách Vô hiệu hóa Chế độ Nghiêm ngặt của MySQL trên Laravel Forge (Ubuntu), thì bạn sẽ nhớ rằng MySQL 5. 7 đã giới thiệu một thứ mà chúng tôi tình cờ gọi là "chế độ nghiêm ngặt", đây thực sự là sự kết hợp của các chế độ mới, tóm lại, làm cho MySQL xử lý các truy vấn của bạn nghiêm ngặt hơn một chút so với trước đây Show Trong bài viết trước tôi đã trình bày cách vô hiệu hóa nó trên Ubuntu, nhưng kể từ đó, Adam Wathan đã thêm một tính năng vào Laravel cho phép bạn xác định xem bạn có đang sử dụng chế độ "nghiêm ngặt" hay không và cũng cho phép bạn tùy chỉnh chính xác chế độ nào bạn muốn. Nếu tôi có thể đặt tùy chọn cấu hình trong mã thay vì trên máy chủ mà không ảnh hưởng đến hiệu suất, thì tôi sẽ luôn thích nó hơn--tôi sẽ bớt phải làm một việc mỗi khi triển khai sang một máy chủ mới. Vì vậy, tôi hoàn toàn vui mừng vì tính năng mới này
mysql 5. 7 và chế độ "nghiêm ngặt"Trước khi nói về tính năng này, hãy nhanh chóng tìm hiểu "chế độ nghiêm ngặt" nghĩa là gì MySQL có "chế độ", mỗi chế độ kích hoạt hoặc vô hiệu hóa một hành vi nhất định. Ví dụ: 0 là một chế độ mà bạn đoán nó sẽ báo lỗi khi bạn chia cho 0 trong phép toán chia SQL. Nếu không bật chế độ này, bạn sẽ chỉ nhận được kết quả 1 một cách âm thầm"Chế độ nghiêm ngặt", đây thực sự chỉ là danh sách các chế độ 5. 7 được bật theo mặc định, bao gồm các chế độ sau
Bạn có thể tìm hiểu thêm về các chế độ này tại tài liệu về MySQL Trước 5. 7, chế độ duy nhất được bật là 2Kích hoạt và vô hiệu hóa chế độ nghiêm ngặt trong Laravel 5. 2Với tính năng mới này, Laravel hiện có khả năng thực hiện ba việc. Vô hiệu hóa chế độ "nghiêm ngặt", trở về <= 5. 6 hành vi; . 7 hành vi; Các cài đặt này nằm trong 3 trong phần 4. Để bắt đầu, hãy xem xét bật và tắt chế độ "nghiêm ngặt"
Tùy chỉnh chế độ nào được bậtNhưng nếu bạn không hài lòng với cả 5. 6 hoặc 5. Chế độ mặc định của 7?
Thế thôi nhé mọi ngườiGiờ đây, bạn có khả năng kiểm soát hoàn toàn chế độ nào được bật trên máy chủ MySQL của ứng dụng, bằng mã, mà không cần chạm vào dòng cấu hình máy chủ. cứ thế Theo mặc định, tôi khuyên bạn nên để tất cả chúng trên. Nhưng có thể có những trường hợp với các trường hợp sử dụng cụ thể hoặc các dự án cũ mà bạn cần tùy chỉnh danh sách này và giờ đây điều đó có thể thực hiện được--và thậm chí còn đơn giản Chế độ nghiêm ngặt trong MySQL và MariaDB kiểm soát việc xử lý các giá trị không hợp lệ hoặc bị thiếu trong các truy vấn thay đổi dữ liệu. Điều này bao gồm các câu lệnh INSERT, UPDATE và CREATE TABLE. Với chế độ nghiêm ngặt của MySQL được bật, là trạng thái mặc định, dữ liệu không hợp lệ hoặc bị thiếu có thể gây ra cảnh báo hoặc lỗi khi cố gắng xử lý truy vấn Khi chế độ nghiêm ngặt bị tắt, cùng một truy vấn sẽ được điều chỉnh các giá trị không hợp lệ hoặc bị thiếu và tạo ra một cảnh báo đơn giản. Đây có vẻ là kết quả ưa thích, tuy nhiên khi tắt chế độ nghiêm ngặt, một số hành động nhất định có thể gây ra kết quả không mong muốn. Chẳng hạn, khi giá trị được chèn vượt quá giới hạn ký tự tối đa, nó sẽ bị cắt bớt để phù hợp với giới hạn Có nhiều lý do tại sao chế độ nghiêm ngặt của MySQL có thể cần phải bị vô hiệu hóa. Phổ biến nhất là khi một máy chủ đang chạy WHMCS — một yêu cầu của công cụ đó
Cách tốt nhất là thực hiện một số hình thức sao lưu trước khi sửa đổi tệp máy chủ. Nó đảm bảo bạn có cách hoàn nguyên các thay đổi nếu xảy ra sự cố. Sao lưu cũng có lợi vì chúng giúp theo dõi các thay đổi Trong khi đăng nhập vào SSH với người dùng root trên Linux, hãy sử dụng lệnh mở rộng cú đúp Bash sau để tạo một bản sao lưu của tệp trong thư mục Linux gốc của nó
Người dùng Windows phải định vị và sao lưu tệp my. tập tin ini. Từ menu Bắt đầu, chọn Cài đặt > Cập nhật & Bảo mật > Sao lưu > Thêm ổ đĩa, sau đó chọn ổ đĩa ngoài hoặc vị trí mạng nơi bạn lưu trữ các bản sao lưu của mình Bước 2. Vô hiệu hóa Chế độ nghiêm ngặt của MySQLTùy thuộc vào máy chủ và cấu hình hiện tại, bạn có thể cần chỉnh sửa một hoặc cả hai tệp sau trên máy chủ. Nói chung, các dòng cấu hình có liên quan chỉ nằm trong một trong số chúng. Tuy nhiên, nó có thể ở một trong hai mà không gây ra sự cố, vì vậy, tốt nhất bạn nên kiểm tra cả hai Để chỉnh sửa tệp trong Linux, bạn sẽ mở tệp bằng trình chỉnh sửa dòng lệnh yêu thích của mình. Hướng dẫn này sử dụng Vim
Trong tệp, định vị dòng sau
Dòng này đang đặt biến sql_mode. Thay thế nó bằng dòng sau để tắt chế độ nghiêm ngặt của MySQL Sau khi điều chỉnh này được thực hiện hoặc bạn đã xác nhận tệp không cần điều chỉnh, hãy lưu và đóng tệp. Nhấn Esc để vào chế độ lệnh và gõ. wq để ghi và thoát tệp Quá trình này tương tự đối với Windows, nhưng bạn cần định vị và mở tệp my. ini từ File Explorer. Vị trí tiêu chuẩn cho nó là C. \ProgramData\MySQL\MySQL Server X. X. Thư mục ProgramData bị ẩn. Để hiển thị một thư mục ẩn, nhấp vào tab Xem từ Thanh Menu và nhấp vào hộp kiểm bên cạnh Các mục ẩn trong phần Hiển thị/ẩn.
Thay thế dòng này trong tệp bằng dòng sau để thay đổi chế độ thành trống Bước 3. Khởi động lại dịch vụ MySQLBạn cần khởi động lại dịch vụ MySQL để những thay đổi này có hiệu lực vì dịch vụ này sẽ chỉ đọc các tệp cấu hình khi tải lần đầu Đối với máy chủ CentOS 7, hãy sử dụng lệnh này Đối với CentOS 6 trở về trước, hãy sử dụng lệnh sau
Sau khi ban hành lệnh này trên máy chủ, dịch vụ MySQL sẽ được khởi động lại và sẽ tải các thay đổi đã thực hiện. Chế độ nghiêm ngặt của MySQL hiện đã bị tắt Bạn có thể chạy lệnh sau để xác minh rằng quy trình đã được hoàn tất đúng cách ________số 8 Dưới đây là một ví dụ đầu ra bạn sẽ nhận được
Để khởi động lại MySQL trong Windows, hãy tìm kiếm và mở ứng dụng Công cụ quản trị. Bấm đúp vào Dịch vụ. Xác định vị trí và chọn MySQL. Bạn được trình bày với các tùy chọn sau ở bên trái
Nhấp vào Khởi động lại dịch vụ và đợi trạng thái thay đổi trở lại Đã bắt đầu Vô hiệu hóa Chế độ nghiêm ngặt trong MySQL là một nhiệm vụ đơn giản, bất kể tại sao quản trị viên cần vô hiệu hóa nó. Hướng dẫn này giúp bạn tắt Chế độ nghiêm ngặt của MySQL cho máy chủ Linux hoặc Windows |