mysql.connector.errors.InterfaceError: 2003: Can’t connect to MySQL server on ‘127.0.0.1:3306’ (10048 Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт))
Закрываются. Твой скрипт может работать круглосуточно, и если не освобождать память, ее может не хватить. Если это веб, зависит от устройства твоего фреймворка. Для пыха и php-fpm можно не парится, для питона там может быть встроеный вебсервер на питоне, и скрипт получается работает постоянно. В зависимости от того, что ты используешь, может получится утечка памяти.
и там много запросов и возможно соединений, то тогда понятно что лучше закрывать, но если у меня скрипт работает круглосуточно и там всего одно соединение и один запрос, то закроет его скрипт в конце дня или мы его закроем есть ли разница в этом случае?
Все зависит от кода. По идее деструкторы объектов соединение и курсор должны очищать память, но если ты эти объекты где-то сохраняешь в памяти, то деструкторы вызываться не будут. Можешь проверить экспериментально)
А вот когда создаешь курсор, то он привязывается в соединению и тогда зачем отдельно закрывать курсор и соединение? Соединение не закроет все связанные с ним курсоры если выполнить просто connection.close()? Почему так реализовано?
обычно не важно что там у кого разрешается, мускуль наконфижен на энное число максимум соединений - раз, сама же сеть позволит 65к срединений на один адрес, т.к. клиенту исходящий порт назначается динамически, это сервер заняв порт будет держать на коннекте любое колво клиентов, ограничение лишь в конфиге.