📖 Scenario: You are a database administrator for a small online store. The store's MySQL server needs some basic tuning to improve performance and resource usage. You will adjust server configuration settings to optimize the server for the store's workload.
🎯 Goal: Learn how to set and update MySQL server configuration variables using SQL commands to tune the server for better performance.
📋 What You'll Learn
Check the current wait_timeout value
Set a new wait_timeout value for the session
Update the global wait_timeout variable
Verify the updated wait_timeout setting
💡 Why This Matters
🌍 Real World
Database administrators often need to tune server settings to improve performance and handle more users.
💼 Career
Knowing how to adjust MySQL server variables is essential for roles like DBA, backend developer, and system administrator.
Progress0 / 4 steps
1
Check current wait_timeout value
Write a SQL query to select the current value of the wait_timeout system variable using SHOW VARIABLES LIKE 'wait_timeout'.
MySQL
Hint
This command shows the current setting for wait_timeout.
2
Set a new wait_timeout value for the session
Write a SQL statement to set the session variable wait_timeout to 200 using SET SESSION wait_timeout = 200;.
MySQL
Hint
Use SET SESSION wait_timeout = 200; to change the setting only for your current session.
3
Update the global wait_timeout variable
Write a SQL statement to set the global variable wait_timeout to 300 using SET GLOBAL wait_timeout = 300;. This change affects all new connections.
MySQL
Hint
Use SET GLOBAL wait_timeout = 300; to change the setting for all new connections.
4
Verify the updated wait_timeout setting
Write a SQL query to verify the global wait_timeout value by running SHOW GLOBAL VARIABLES LIKE 'wait_timeout';.
MySQL
Hint
This command confirms the global wait_timeout setting has been updated.
Practice
(1/5)
1. What is the main purpose of tuning MySQL server configuration settings?
easy
A. To backup the database automatically
B. To change the database schema structure
C. To improve server performance and handle more users efficiently
D. To write complex SQL queries
Solution
Step 1: Understand server tuning goal
Server tuning adjusts settings like memory and cache to make the server faster and support more users.
Step 2: Differentiate from other tasks
Changing schema, writing queries, or backups are different tasks unrelated to tuning configuration.
Final Answer:
To improve server performance and handle more users efficiently -> Option C
Quick Check:
Server tuning = performance improvement [OK]
Hint: Tuning means making server faster and handle more users [OK]
Common Mistakes:
Confusing tuning with schema changes
Thinking tuning is about writing queries
Assuming tuning is for backups
2. Which of the following commands correctly changes a global MySQL server variable at runtime?
easy
A. SET GLOBAL max_connections = 200;
B. CHANGE GLOBAL max_connections TO 200;
C. UPDATE GLOBAL max_connections = 200;
D. ALTER GLOBAL max_connections = 200;
Solution
Step 1: Recall correct syntax for changing global variables
The correct syntax uses SET GLOBAL variable_name = value;
Step 2: Check each option
Only SET GLOBAL max_connections = 200; uses the correct SET GLOBAL syntax. Others use invalid keywords like CHANGE, UPDATE, ALTER.
Final Answer:
SET GLOBAL max_connections = 200; -> Option A
Quick Check:
SET GLOBAL = correct syntax [OK]
Hint: Use SET GLOBAL to change server variables at runtime [OK]
Common Mistakes:
Using UPDATE or ALTER instead of SET
Forgetting GLOBAL keyword
Using TO instead of =
3. After running SET GLOBAL max_connections = 300;, what will the output of SHOW VARIABLES LIKE 'max_connections'; show?
medium
A. max_connections = 300
B. max_connections = 100 (default value)
C. Syntax error
D. max_connections = NULL
Solution
Step 1: Understand effect of SET GLOBAL
SET GLOBAL changes the variable for the running server immediately.
Step 2: Check SHOW VARIABLES output
SHOW VARIABLES LIKE 'max_connections' shows the current global value, which is now 300.
Final Answer:
max_connections = 300 -> Option A
Quick Check:
SET GLOBAL changes variable value immediately [OK]
Hint: SHOW VARIABLES shows current global values after SET GLOBAL [OK]
Common Mistakes:
Thinking default value remains after SET GLOBAL
Expecting syntax error from valid commands
Assuming NULL means unset
4. You tried to run SET GLOBAL innodb_buffer_pool_size = 1073741824; but got an error. What is the most likely cause?
medium
A. The value is too small
B. You need SUPER privilege to change this variable
C. The variable name is misspelled
D. SET GLOBAL cannot change innodb variables
Solution
Step 1: Check privileges needed for changing global variables
Changing global variables like innodb_buffer_pool_size requires SUPER privilege.
Step 2: Verify other options
The variable name is correct, value is valid, and SET GLOBAL can change innodb variables if privileges allow.
Final Answer:
You need SUPER privilege to change this variable -> Option B
Quick Check:
SUPER privilege required for global changes [OK]
Hint: Changing global variables often needs SUPER privilege [OK]
Common Mistakes:
Assuming syntax error means misspelling
Thinking value size is the problem
Believing SET GLOBAL can't change innodb variables
5. You want to increase the maximum number of allowed connections to 500 and verify the change without restarting the server. Which sequence of commands is correct?
hard
A. UPDATE max_connections = 500; SELECT max_connections;
B. SET max_connections = 500; SHOW STATUS LIKE 'max_connections';
C. ALTER SYSTEM SET max_connections = 500; SHOW VARIABLES;
D. SET GLOBAL max_connections = 500; SHOW VARIABLES LIKE 'max_connections';
Solution
Step 1: Identify correct command to change max_connections at runtime
SET GLOBAL max_connections = 500; changes the setting immediately without restart.
Step 2: Verify the change
SHOW VARIABLES LIKE 'max_connections'; displays the current value of max_connections.
Step 3: Check other options
UPDATE and ALTER SYSTEM are invalid for this purpose; SET without GLOBAL affects session only; SHOW STATUS shows runtime stats, not variables.
Final Answer:
SET GLOBAL max_connections = 500; SHOW VARIABLES LIKE 'max_connections'; -> Option D
Quick Check:
SET GLOBAL + SHOW VARIABLES = correct sequence [OK]
Hint: Use SET GLOBAL then SHOW VARIABLES to change and check [OK]
Common Mistakes:
Using UPDATE or ALTER SYSTEM commands
Forgetting GLOBAL keyword in SET
Using SHOW STATUS instead of SHOW VARIABLES
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.