5

As you can see from the output below, I'm using the MySQL shell to change the session's wait_timeout variable to 30 seconds. It works.

However, Is there anyway to set this variable from the command line?

$ mysql -u root -h 127.0.0.1 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 48543
Server version: 5.6.39 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW SESSION VARIABLES LIKE 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
1 row in set (0.00 sec)

mysql> SET session wait_timeout=30;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW SESSION VARIABLES LIKE 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 30    |
+---------------+-------+
1 row in set (0.00 sec)

mysql> select now() from dual;
+---------------------+
| now()               |
+---------------------+
| 2018-01-23 17:16:52 |
+---------------------+
1 row in set (0.00 sec)

mysql> select now() from dual;
ERROR 2013 (HY000): Lost connection to MySQL server during query

1 Answer 1

7

This does it:

$ mysql -u root -p -h 127.0.0.1 --init-command="SET SESSION wait_timeout=30"
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.