INSERT / UPDATE в MySQL на Python

Ну в принципе и не на Python, важен принцип. Что мне нужно? Если UPDATE завершился ошибкой (данные не обновлены т.к. их нет), тогда INSERT. Вообще в MYSQL есть специальная команда — REPLACE, у которой синтаксис такой-же как у INSERT, за исключением того, что если такая запись уже есть, то она просто измениться. Одно НО. Таблица обязательно должна содержать колонки с UNIQUE. А если их нет, и добавить нельзя? Тогда к сожалению придется «отлавливать» результат выполнения UPDATE — а именно количество изменившихся записей. Если 0 — считаем что такой записи вообще нет, и вставляем. На Python нечто подобное реализовать можно вот так:

The server requested authentication method unknown to the client

После апгрейда сервера MySQL 8, часть скриптов стала выдавать при коннекте ошибку вида:

Решение: нужно для пользователя поменять способ аутенфикации:

Отключение бинарных логов в MySQL 8

По умолчанию они включены, и в конфигурационном файле my.cnf их не отключить. Вообще конечно они нужны для восстановления БД в случае сбоев или репликации, но бывают ситуации, что их полезно отключить. В MySQL 8 их можно только отключить поправив службу запуска, добавив ключ:

Mysql: Failed to write to mysql.general_log

После того как руками удалил файл mysql.general_log, в логах возникла такая ошибка. Решение: в консоли mysql выполнить

1 2 3 4 5 13