Fazer:
con.query('SET GLOBAL connect_timeout=28800')
con.query('SET GLOBAL interactive_timeout=28800')
con.query('SET GLOBAL wait_timeout=28800')
Significado do parâmetro (retirado do MySQL Workbench no Navigator:Instance> Options File> Tab "Networking"> Seção "Timeout Settings")
- connect_timeout :Número de segundos que o servidor mysqld espera por um pacote de conexão antes de responder com 'Bad handshake'
- interactive_timeout Número de segundos que o servidor espera pela atividade em uma conexão interativa antes de fechá-la
- wait_timeout Número de segundos que o servidor espera pela atividade em uma conexão antes de fechá-la
BTW:28800 segundos são 8 horas, portanto, para um tempo de execução de 10 horas, esses valores devem ser realmente mais altos.