SET biến GLOBAL MySQL

Trước phiên bản 4. x của MySQL, nếu bạn muốn thay đổi giá trị của biến máy chủ, bạn phải thực hiện thay đổi đó trong tệp tùy chọn (của tôi. cnf hoặc của tôi. ini, tùy thuộc vào hệ thống của bạn) rồi khởi động lại máy chủ hoặc tại dòng lệnh khi khởi động lại máy chủ. Đôi khi bạn có thể cần thay đổi một biến hệ thống, nhưng không đủ khả năng để khởi động lại trình nền máy chủ

Bắt đầu với phiên bản 4. x của MySQL, bạn có thể thay đổi các biến máy chủ mà không cần khởi động lại máy chủ bằng cách sử dụng câu lệnh SET. Nó có thể được sử dụng để thiết lập một hệ thống sử dụng toàn cầu hoặc sử dụng theo phiên. Biến toàn cầu có sẵn cho tất cả người dùng. Biến phiên chỉ khả dụng cho chuỗi kết nối tạo biến. Để các biến hệ thống được công nhận là toàn cầu, cờ TOÀN CẦU phải được sử dụng vì các biến được giả định chỉ dành cho phiên hiện tại theo mặc định. Biến có thể đứng trước @@global. thay vào đó để biểu thị rằng nó là toàn cầu. Đối với các biến hệ thống mà bạn muốn giới hạn trong phiên hiện tại, hãy sử dụng cờ SESSION hoặc đặt @@session. hoặc chỉ @@ trước tên biến. ĐỊA PHƯƠNG và @@ địa phương. là bí danh cho SESSION và @@session. , tương ứng. Dưới đây là hai ví dụ về cách bạn có thể thay đổi các biến hệ thống

SET GLOBAL concurrent_insert =  1;
SET LOCAL interactive_timeout=50000;

Câu lệnh SQL đầu tiên ở trên tắt tính năng chèn đồng thời cho tất cả các kết nối mà không phải khởi động lại máy chủ. Cái thứ hai thay đổi thời gian chờ tương tác thành giá trị cao hơn bình thường. Thay đổi này chỉ áp dụng cho kết nối máy khách hiện tại. Nó không ảnh hưởng đến các khách hàng khác. Đối với hệ thống, biến này sẽ vẫn có giá trị mặc định

Câu lệnh SET gán giá trị cho các loại biến khác nhau ảnh hưởng đến hoạt động của máy chủ hoặc máy khách của bạn. Các phiên bản cũ hơn của MySQL sử dụng SET OPTION, nhưng cú pháp này không được dùng để thay thế cho SET mà không có

user_var_name:= expr
0 và đã bị xóa trong MariaDB 10. 0

Thay đổi biến hệ thống bằng cách sử dụng câu lệnh SET không thực hiện thay đổi vĩnh viễn. Để làm như vậy, thay đổi phải được thực hiện trong tệp cấu hình

Để đặt các biến trên cơ sở mỗi truy vấn, hãy xem SET STATEMENT

Xem SHOW VARIABLES để biết tài liệu về cách xem các biến hệ thống máy chủ

Xem Biến hệ thống máy chủ để biết danh sách tất cả các biến hệ thống

TOÀN CẦU / PHIÊN

Khi đặt biến hệ thống, phạm vi có thể được chỉ định là TOÀN CẦU hoặc PHIÊN

Thay đổi biến toàn cầu ảnh hưởng đến tất cả các phiên mới. Nó không ảnh hưởng đến bất kỳ phiên nào hiện đang mở, kể cả phiên đã thực hiện thay đổi

Thay đổi biến phiên chỉ ảnh hưởng đến phiên hiện tại

Nếu biến có giá trị phiên, việc không chỉ định TOÀN CẦU hoặc PHIÊN sẽ giống như chỉ định PHIÊN. Nếu biến chỉ có giá trị toàn cầu, việc không chỉ định TOÀN CẦU hoặc PHIÊN sẽ áp dụng cho thay đổi đối với giá trị toàn cầu

MẶC ĐỊNH

Đặt biến toàn cục thành MẶC ĐỊNH sẽ khôi phục nó về giá trị mặc định của máy chủ và đặt biến phiên thành MẶC ĐỊNH sẽ khôi phục nó về giá trị toàn cầu hiện tại

Bạn đang xem tài liệu về phiên bản cũ hơn của cơ sở dữ liệu TiDB (TiDB v5. 1). Bạn nên sử dụng phiên bản LTS mới nhất của cơ sở dữ liệu TiDB

Câu lệnh SET [GLOBAL|SESSION] sửa đổi một trong các biến tích hợp của TiDB, thuộc phạm vi SESSION hoặc GLOBAL

Tương tự như MySQL, các thay đổi đối với biến GLOBAL không áp dụng cho các kết nối hiện có hoặc kết nối cục bộ. Chỉ các phiên mới phản ánh các thay đổi đối với giá trị

Tóm tắt

ĐặtStmt

SET biến GLOBAL MySQL

Chuyển nhượng biến

SET biến GLOBAL MySQL

ví dụ

Nhận giá trị của

user_var_name:= expr
0

mysql> SHOW GLOBAL VARIABLES LIKE 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| 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 |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SHOW SESSION VARIABLES LIKE 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| 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 |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Cập nhật giá trị của

user_var_name:= expr
0 trên toàn cầu. Nếu bạn kiểm tra giá trị của
user_var_name:= expr
2 sau khi cập nhật, bạn có thể thấy rằng giá trị của cấp độ SESSION chưa được cập nhật

Làm cách nào để đặt biến toàn cục trong MySQL vĩnh viễn?

Để duy trì một biến hệ thống toàn cục cho mysqld-auto. cnf trong thư mục dữ liệu, đặt trước tên biến bằng từ khóa PERSIST hoặc @@PERSIST . vòng loại. THIẾT LẬP LIÊN TỤC max_connections = 1000; .

Làm cách nào để đặt một biến trong MySQL?

Gán biến MySQL . Bạn có thể sử dụng một trong hai. = hoặc = là toán tử gán trong câu lệnh SET . Ví dụ câu lệnh gán số 100 cho biến @counter. Cách thứ hai để gán giá trị cho một biến là sử dụng câu lệnh SELECT.

Làm cách nào để sử dụng bộ trong MySQL?

mysql> CHỌN set_col+0 TỪ tbl_name; Nếu một số được lưu trữ trong cột SET, các bit được đặt trong biểu diễn nhị phân của số sẽ xác định các phần tử của tập hợp trong . Đối với một cột được chỉ định là SET('a','b','c','d') , các thành viên có các giá trị thập phân và nhị phân sau.