Відповіді:
interactive_timeпризначений для інтерактивних сесій, тоді wait_timeoutяк для неінтерактивних сесій.
Що таке інтерактивна сесія? Це один з людиною на клавіатурі.
Коли ваш код підключиться до MySQL, виконує запит і потім витрачає 3 секунди на обробку цього запиту перед відключенням, це 3 секунди wait_timeout.
Коли ви використовуєте mysqlклієнт командного рядка для підключення, запустіть команду і витрачайте 10 секунд на читання результатів, це 10 секунд interactive_timeout. Якщо ви підете і обідаєте, це 3600 секунд interactive_timeout.
В обох випадках, коли ви або ваш код виконуєте інший запит, час очікування повертається до 0.
Ви можете побачити значення для всіх поточних сеансів, ввівши show processlist. Значення sleep(5)функції - це кількість секунд з моменту останнього з'єднання.