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 v4. 0]. 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 sẵn 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 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
Chuyển nhượng biến
ví dụ
Nhận giá trị của sql_mode
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 sql_mode
trên toàn cầu. Nếu bạn kiểm tra giá trị của SQL_mode
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
Định nghĩa của wait_timeout
. Số giây máy chủ đợi hoạt động trên một kết nối không tương tác trước khi đóng nó. Khi khởi động luồng, giá trị wait_timeout của phiên được khởi tạo từ giá trị wait_timeout toàn cầu hoặc từ giá trị Interactive_timeout toàn cầu
Đây là bài kiểm tra
Truy vấn mà không thay đổi bất kỳ tham số nào, tất cả các giá trị được đặt thành 8 giờ theo mặc định
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 28800 | 28800 | 28800 | 28800 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set [0.00 sec]
Thay đổi tham số ở cấp phiên
SET wait_timeout = 10 , interactive_timeout = 10;
Query OK, 0 rows affected [0.00 sec]
Kết quả, tất cả đều tốt như mong đợi, cài đặt chung vẫn giữ nguyên và cài đặt phiên được thay đổi
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 28800 | 10 | 28800 | 10 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set [0.00 sec]
Thay đổi tham số ở cấp độ toàn cầu
SET GLOBAL wait_timeout = 10 ;
Query OK, 0 rows affected [0.00 sec]
SET GLOBAL interactive_timeout = 10;
Query OK, 0 rows affected [0.00 sec]
Kết quả , tất cả có vẻ tốt như mong đợi
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 10 | 10 | 10 | 10 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set [0.00 sec]
Ngắt kết nối chuỗi MySQL và kết nối lại, và tất cả sẽ hoạt động tốt trở lại
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 10 | 10 | 10 | 10 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set [0.00 sec]