MySQL Ситуация такая - есть таблица и в ней поле DATETIME. Я хочу добавлять данные (insert) а также смотреть (select) по гринвичу, а база мне показывает по московскому. Нашел в интернете как это исправить, что-то типа SET @@global.time_zone = '+00:00'; но проблема в том, что база на хостинге и права у меня ограничены, мне отвечают
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Можно ли как-то не имея таких прав, объяснить базе, что в данном конкретном insert датавремя в виде строки должна трактоваться как UTC, тоже и про select?
Удалил (было про connection: keep-alive, но опыты показали что, похоже, сервер на это не обращает внимания, т.е. независимо от того, что написать (keep-alive, close, или вообще ничего) все равно работает как если бы keep-alive)
Что нужно: скачать несколько файлов (немного, скажем, 3-5) с одного хоста. Можно конечно использовать file_get_contents, но это не производительно 1) функция открыват каждый раз новое соединение 2) функция скачивает файл даже если он не поменялся с прошлого скачивания.
Написал мануальный запрос (через сокеты), к сожалению, работает только на http, а если https - нет.
Итак, что я хочу:
1. Подсоединиться к хосту
2. Отправить запрос, в заголовке которого указано, какой файл у меня есть (дата-время и/или etag). Если файл с тех пор обновился, скачать (в память, НЕ на диск), если нет, получить код 304
3. не разрывая соединения, сделать то же самое для второго и третьего файла.
Я не прошу написать за меня, буду признателен если подскажете последовательность функций, которые нужно вызывать, а подробности я уже прочитаю в описании этих функций.
Что НЕ надо 1. параллельное скачивание. 2. записывать скачанные данные на диск.
SELECT d FROM generate_series('2020-12-01','2020-12-07', interval '1 day') d WHERENOTEXISTS(SELECTFROM tablename WHERE created_at >= d AND created_at < d + interval '1 day')
generate_series в MySQL не работает. Сдался, сделал все что надо на PHP
Понятно, что все что я хочу, легко делается с помощью языка программирования, напр. PHP, но ради спортивного интереса, можно ли это сделать одним запросом на SQL?
Итак, есть таблица с некими данными, одно из полей - дата-время. Хочется получить список дат (за заданный небольшой промежуток времени), для которых записей в таблице нет.
Напр. есть записи
"2020-12-01 15:25:26", другие поля"
"2020-12-02 12:42:11", другие поля
"2020-12-04 11:33:42", другие поля
"2020-12-05 05:24:36", другие поля
"2020-12-07 07:15:56", другие поля
"2020-12-08 03:11:27", другие поля
Я хочу сделать запрос, задав исходный диапазон "2020-12-01" "2020-12-07" и получить результат "2020-12-03", "2020-12-06"
В какой-то момент перестал работать сайт. Оч. быстро удалось понять, что виноват MySQL сервер, на все запросы выдает ошибку, при попытке войти с консоли (в т.ч. с логином root) говорит "too many connections". Первым делом отключил сайт (через .htaccess) - не помогло. Поиски в гугле также ничего не прояснили. Ситуацию удалось исправить перезапуском MySQL сервера, конкретно "sudo service mysql restart".
Вот теперь хочется разобраться, в чем причина, что это за соединения в таком большом количестве, даже при выключенном сайте, как искать причину и что делать если повторится.
Т.к. про SQL знаю только слово select, даже не знаю где искать, что читать в первую очередь.
По выводу можно понимать когда скрипт реально запустился и когда закончил работу.
Пытаюсь его запустить (т.е. открыть страничку в браузере). И вот что получается, если открываю два раза одновременно, то один работает нормально, а второй запускается только после того, как первый закончил работу. Первый вопрос - почему не одновременно, кто мешает им выполняться параллельно?
Но это еще не все, пытаюсь запустить одновременно три. Еще интереснее - первый запускается, два остальных ждут. Но когда первый доработал, второй и третий запускаюся почти одновременно, т.е. друг другу не мешают.
Загадка, однако. Кто-нибудь может объяснить, что происходит?
Это уже зависит от конкретной реализации. Ну напр. если браузер для Windows написан на C/C++, вызовет какую-нибудь функцию операционки, (типа Sleep(), WaitForSingleObject() ) и операционка его "разбудит" когда время наступит. Это всего лишь предположение, один из возможных вариантов...