Pokud se jedná o webovou aplikaci a pokoušíte se udržet transakci z jedné stránky na druhou, nedělejte to; nebude to fungovat.
Co myslíš tím "hned po"? Pokud mezi těmito dvěma příkazy neděláte nic, i časový limit 1 sekundy by měl být dostatečně velký.
mysql> SET GLOBAL innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 50 |
+----------------------------+
mysql> SET SESSION innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 1 |
+----------------------------+
Vysvětlení GLOBAL vs. SESSION pro VARIABLES:Hodnota GLOBAL se používá k inicializaci hodnotu SESSION při zahájení připojení. Poté můžete změnit hodnotu SESSION, abyste ovlivnili to, co děláte. A změna hodnoty GLOBAL nemá žádný vliv na vaši aktuální připojení.
Změna časového limitu na 1 je docela bezpečná (jakmile pochopíte GLOBAL vs SESSION). Jediná věc, která se změní, je frekvence výskytu této chyby.