MySQL Workbench: как сохранить соединение живым

75

Код ошибки: 2013. Потерянное соединение с сервером MySQL во время запроса

Я использую MySQL Workbench. Кроме того, я запускаю пакет вставки, всего около 1000 строк (пример INSERT INTO mytable SELECT * FROM mysource1; INSERT INTO mytable SELECT * FROM mysource2;...mysource3...mysource4 умножен на 1000 раз). Каждая партия занимает значительное количество времени, некоторые из них - более 600 секунд.

Как настроить рабочую станцию, продолжить работу за одну ночь, не останавливаясь и не теряя соединение?

Теги:
mysql-workbench
connection-timeout

7 ответов

171
Лучший ответ

Из интернет-архива unavailable:

Перейдите в Edit → Preferences → SQL Editor и установите более высокое значение этого параметра: время ожидания подключения к СУБД (в секундах). Например: 86400.

Закройте и снова запустите Workbench MySQL. Убейте ранее запрошенный запрос вероятно, выполняется и снова запускает запрос.

  • 4
    Существует ошибка во всех версиях MySQL Workbench, кроме 6.0.x в Mac OS: stackoverflow.com/a/37890150/1014813
  • 2
    Это сработало для меня, но пришлось перезапустить редактор, чтобы вступить в силу.
Показать ещё 1 комментарий
28

Если вы используете тип соединения "Стандартный TCP/IP через SSH", в разделе "Настройки" → "Другие" есть поле "SSH KeepAlive". Мне потребовалось довольно много времени, чтобы найти его: (

  • 0
    Почему ты повторяешь ответ?
  • 16
    @JanDoggen Я не вижу другого ответа, который указывает, где в MySQL Workbench вы можете изменить «SSH KeepAlive», который по умолчанию 0 => отключен. Я вижу только ответ, который предлагает изменить настройки ssh сервера ...
Показать ещё 4 комментария
9

В 5.2.47 (по крайней мере, на mac) перейдите в расположение настроек: MySQLWorkbench- > Настройки- > Редактор SQL

Затем вы увидите оба:

Интервал продолжительности подключения к СУБД (в секундах): Время ожидания подключения к СУБД (в секундах):

Последний - это то, где вы захотите увеличить лимит от 600 до чего-то большего.

  • 0
    Я установил тайм-аут чтения подключения к СУБД на 86400 секунд, после примерно 7200 секунд выполнения какого-либо запроса я все еще получаю ошибку 2013. Кто-нибудь знает что-нибудь об этом?
7

В моем случае после попытки установить тайм-аут SSH в командной строке и в настройках локального сервера. Решение @Lubitel решило проблему со мной.

Следует отметить, что в Workbench 6.2 настройка теперь находится под расширенным

Изображение 106426

  • 2
    В 6.3 Advanced был переименован в Others.
2

ОК - так что эта проблема сводила меня с ума - v 6.3.6 на Ubuntu Linux. Ни один из вышеперечисленных решений не работал у меня. Соединение с сервером localhost mysql ранее всегда работало нормально. Подключение к удаленному серверу всегда тайм-аут - примерно через 60 секунд, иногда через меньшее время, иногда больше.

Что в конечном итоге сработало для меня, было обновление Workbench до 6.3.9 - никаких отброшенных соединений.

2

Я получал эту ошибку 2013 года, и ни одна из вышеупомянутых изменений предпочтений не сделала ничего, чтобы исправить эту проблему. Я перезапустил службу mysql, и проблема исчезла.

2

Если вы используете тип соединения "Стандартный протокол TCP/IP через SSH", может быть, сервер ssh не синхронизирует время, и в этом случае вам нужно будет отредактировать связанные параметры TCPKeepAlive в файле /etc/ssh/sshd _config на вашем сервере.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню