Задать вопрос
  • MYSQL --skip-grant-tables?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ну так посмотрите файл сервиса, может эта опция в нём напрямую прописана.
    Ответ написан
    Комментировать
  • Потеря пакетов в сети Ростелекома?

    Afranius
    @Afranius
    Из говорящих дольше живут те, что говорят меньше.
    Ничего. Мне тоже интернет по работе нужен, как-то связь с работой пропала, запустил MTR и охренел - на узле Ростелекома более 80 процентов потерь пакетов.
    Звоню им, кричу - "что вы, творите, собаки сутулые?"
    А мне в ответ - "идите нахер, вы не являетесь нашим абонентом".
    Написал на них жалобу в ФАС, так на меня по работе вышел чел и сказал, что если опять такая хрень будет - звонить ему, он РТ построит. Хотя по идее такие косяки должен мой провайдер разруливать, но он отморозился.
    Ответ написан
    2 комментария
  • Как реализовать набор таблиц?

    @elderl
    Дополнительные таблицы не нужны. В таблице блока (объединённой) у неиспользуемых полей будет значение "неопределённо" (NULL).
    Ответ написан
    7 комментариев
  • Какой sfp+ RJ-45 модуль выбрать для D-Link DGS-1250-28X?

    @Komrus
    CIO в системном интеграторе.
    > какой модуль выбрать?
    Чтобы без экспериментов - тот, который указан в datasheet'е от производителя
    https://www.dlink.ru/ru/products/1/2422.html
    Это - DEM-410T

    Если брать сторонний - пусть поставщик подтвердит, что предлагаемый SFP+ - совместим с Dlink'ом...
    Ответ написан
    Комментировать
  • Как настроить IP DNS-сервера в локальной сети Windows?

    hint000
    @hint000
    у админа три руки
    Методом тыка менял все возможные комбинации, Основной шлюз на 0.11/0.1, предпочитаемый DNS сервер на 0.11/0.1, 8.8.8.8
    Не надо методом тыка. Не надо было вообще менять настройки ПК, когда изменили физическую схему подключения. Шлюз у вас хоть при первой, хоть при второй схеме может быть только 0.1 без вариантов (второй роутер при обоих схемах не выполняет функцию маршрутизации (в сущности не является роутером)).

    DNS 0.11 с вероятностью 99.9% не должен работать.
    DNS 0.1 с вероятностью 80% работает.

    Если не помогло, то с ПК для диагностики выполните:
    ping 192.168.0.1 (результат в студию)
    tracert 8.8.8.8 (результат в студию)
    nslookup mail.ru (результат в студию)
    Ответ написан
  • Почему может не обжиматься RJ 45?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Потому что RJ-45 не предназначен для обжима отвёрткой. Нет, конечно, если есть подходящая по толщине и ширине отвёртка, а так же набитая рука - то вполне можно. Но всё равно стабильного качества в таком случае не добиться - собственно ваш результат это и показывает. Купите нормальный кримпер и не мучайте ни себя ни провода.
    Ответ написан
    1 комментарий
  • Как установить Ventoy на флешку 3-м разделом?

    @pfg21
    ex-турист
    очистить флешку
    поставить вентой
    уменьшить раздел ventoy
    добавить столько разделов сколько нужно
    Ответ написан
    Комментировать
  • Стоит ли пользоваться софтом если его авторы прекратили работу в РФ?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Риски конечно есть, но связаны они больше не с техникой, а с политикой.

    Технически можно продолжать ставить из дистрибов, загруженных до 24 февраля 2022, отслеживая факт, что обновления отключены, особенно если лицензия купленная, а не "как обычно".

    Политически риски могут быть связаны просто с самим фактом наличия veeam, которая однозначно выразила свою позицию (и этим здорово облегчила работу ИБ, для которых явный враг предпочтительнее непонятного то-ли-друга-то-ли-хрен-знает-кого)

    Если контора КИИ или работает с КИИ - imho лучше во избежание поменять. Если нет - скорее всего , по принципу Неуловимого Джо.
    Ответ написан
    Комментировать
  • Изучаю сети. Где брать практику, что посоветуете?

    @Komrus
    CIO в системном интеграторе.
    На компьютере запускается эмулятор сети.
    В эмуляторе строится сеть из разных роутеров (не бытовых ни разу :).
    Крутишь настройки роутеров, смотришь, что получилось.

    Эмуляторы:
    Cisco Packet Tracer
    Boson NetSim
    GNS3

    PS. Из почитать: цикл "Сети для самых маленьких" на Хабре.
    Курс CCNA от Cisco
    Ответ написан
    1 комментарий
  • Изучаю сети. Где брать практику, что посоветуете?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    1. Не бывает сетевых администраторов без бекграунда системного администрирования и знания tcpip v4. Поэтому если у вас в вопросе фигурирует "excel", да ещё рядом с питоном и пошиком и неизвестными "иногда с'ки" для изучения, то говорить об администрировании рано.
    2. Выучить работу с конкретными вендорами и устройствами это ущербный подход, изучать надо основные протоколы - маршрутизация, VPN и т.п.
    Ответ написан
    Комментировать
  • Как обойти ошибку создания уникального индекса?

    @Dementor
    программист, архитектор, аналитик
    Можно ли со стороны SQL это решить ? Например, с помощью скрипта SQL который бы отслеживал запись и при возникновении ошибки переименовал объект допустим ?

    Т.е. вы предлагаете сделать триггерную функцию, которая во время добавления данных делала проверку их уникальности и вносила изменения в данные при наличии проблем? Звучит сложно. Ведь вам всего лишь один раз нужно файловую базу залить на скуль.

    Ошибка осталась, хотя по всем объектам дубли больше не найдены.

    Я бы на ваш месте не угадывал, а проверил бы поля из индекса IDD для таблицы dbo.SC31 - если скуль ругается, то вы точно что-то пропустили. Сделайте SELECT с GROUP BY этим полям и HAVING COUNT(*) > 1
    Ответ написан
    Комментировать
  • Как временно повышать права пользователю?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    security definer и есть: проверка прав вызова функции (grant execute) будет проверять, может ли её вызвать этот пользователь, но сама функция дальше будет выполняться с правами владельца функции. В том числе с правами супера, если владелец - суперпользователь.

    Не забудьте revoke execute on function .. from public;
    begin;
    create role specific_activity;
    create function stat_activity() .. security definer;
    revoke execute on function stat_activity() from public; -- права на запуск не всем
    grant execute on function stat_activity() to specific_activity; -- а только этой роли
    commit;
    grant specific_activity to someuser;


    btw, для pg_terminate_backend есть предопределённая роль pg_signal_backend.
    Ответ написан
    1 комментарий
  • Как объединить запросы в транзакцию?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Поскольку быстрым поиском готовый ответ на Тостере не находится, стоит написать канонический.

    Сначала общая информация:

    Транзакция служит для обеспечения принципа "всё или ничего", гарантируя, что либо все запросы выполнились без ошибок, либо, если в каком-то из запросов произошла ошибка, то все предыдущие будут отменены, как будто их и не было вовсе. Из чего можно сделать следующие выводы:
    • транзакция не нужна для любого количества запросов на выборку данных, поскольку там нечего откатывать
    • транзакция не нужна для одного запроса на изменение данных (вставка, обновление, удаление) - такой запрос представляет из себя мини-транзакцию, которая сама автоматом откатывается при ошибке
    • не следует путать транзакции с блокировками. Хотя при определённых параметрах транзакции могут выполнять и блокировку, в общем случае это два разных механизма, которые могут выполняться как вместе, так и по отдельности. По умолчанию транзакция НЕ обеспечивает блокировку таблиц, участвующих в запросе


    Самым простым вариантом будет заключить запросы между вызовами beginTransaction() и commit(), как показано например в документации к последнему.
    $db->beginTransaction();
    $db->prepare("UPDATE `tab1` SET `col` = ?")->execute($data1);
    $db->prepare("UPDATE `tab2` SET  `col` = ?")->execute($data2);
    $db->prepare("UPDATE `tab3` SET  `col` = ?")->execute($data3);
    $db->commit();

    Для современных версий РНР этого должно быть достаточно: начиная с РНР 8.0 ошибочный запрос по умолчанию выбрасывает исключение. Не пойманное исключение прерывает выполнение РНР скрипта. При прерывании выполнения скрипта РНР закрывает соединение с Mysql, а при закрытии соединения Mysql откатывает все открытые в нём транзакции.

    Соответственно, при ошибке в любом из запросов транзакция автоматически откатится. А при успешном выполнении всех запросов транзакция, соответственно, закоммитится.

    В редких случаях, когда после отката транзакции предполагается дальнейшее выполнение кода, можно заключить код транзакции в try-catch и откатить её вручную.

    Важно помнить некоторые особенности.
    • в mysql не все движки таблиц поддерживают транзакции. впрочем ,учитывая что innodb является движком по умолчанию уже лет 20, это вряд ли будет проблемой
    • запросы на изменение страктуры таблиц автоматически коммитят стартовавшую транзакцию, то есть их следует избегать. Кажется, в новых версиях какие-то уже не коммитят, но я предпочитаю избегать всё равно.


    Также желательно помнить, что в любом более-менее сложном коде очень быстро появляются вложенные транзакции, а PDO при попытке стартовать транзакцию при уже открытой, выбросит исключение, что, соответственно, приведёт к откату родительской (и это гораздо лучше поведения MySQL по умолчанию, которая автоматически коммитит старую). И имеет смысл накидать простой кодик, который считает вложенные транзакции, и не стартует, если уже был старт, а при коммите вычитает вложенность, а реально коммитит только если вложенности не осталось. Что-то вроде кода из комментариев к beginTransaction(), подравняв его напильником
    class \MyPDO extends \PDO
    {
        protected $transactionCounter = 0;
    
        public function beginTransaction()
        {
            if($this->transactionCounter++ === 0) {
                return parent::beginTransaction();
            }
        }
        public function commit()
        {
            $this->transactionCounter--;
            if($this->transactionCounter === 0) {
                return parent::commit();
            }
        }
        public function rollback()
        {
            $this->transactionCounter = 0;
            return parent::rollback();
        }
    }

    разместив его либо прямо в PDO, либо в своем враппере.
    Ответ написан
    3 комментария
  • Как сделать полное кэширование базы данных?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос сформулирован по-дурацки, из серии преждевременной оптимизации. "У меня ещё ни базы, ни запросов, ни нагрузки и никогда не будет, но желаю чтобы всё летало!"

    Но тем не менее, ответ на него существует. И он гораздо проще, чем все извращения, которые тут наперебой предлагают всякие доброхоты.

    Во-первых, увеличить innodb_buffer_pool_size до 80% от доступной памяти на сервере. Mysql совсем не дура, и прекрасно сама подтянет используемые таблицы в оперативку. И вселенская проблема нашего фантазёра будет решена.
    Отдельно здесь следует упомянуть случай, когда этому буферу не просто задан недостаточный размер, а жалкие 128 мегабайт, поскольку никто не догадался поменять значение, стоявшее в конфиге по умолчанию.

    Во-вторых, добавить нужные индексы. Поскольку даже в оперативке искать по миллиону записей перебором будет гораздо дольше чем в 5-10 хопов по заранее упорядоченному индексу.
    Ответ написан
    5 комментариев
  • Можно ли тянуть от оператора два кабеля интернета?

    @elderl
    Можно. Половина будет на одном, другая — на втором.
    Ответ написан
    3 комментария
  • Почему i? Почему переменную, используемую в циклах, обычно называют именно i?

    @alexalexes
    index. А вообще, индексы элементов массива пришли из математики - i, j, k для первых трех измерений.
    Просто, первыми компухтеры оседлали математики, отсюда и традиция в циклах использовать эти буквы.
    Ответ написан
    2 комментария
  • Какие есть утилиты для автоматизированного проектирования БД?

    @d-stream
    Готовые решения - не подаю, но...
    Хм.. может стоит ткнуть преподавателя в определение термина проектирование вообще и в проектирование баз данных в частности

    Потом проиллюстрировать накидывание структуры, связей и далее в одной из визуальных систем, потом в ней же generate DDL и следом execute SQL
    Ответ написан
    Комментировать
  • Как установить связь "2 ко многим" без промежуточной таблицы?

    @Everything_is_bad
    Не понятно в чем проблема? Что мешает два ForeignKey сделать и почему вдруг тут появится промежуточная таблица?
    Ответ написан
    Комментировать
  • Как разбить сеть на подсети?

    @SunTechnik
    Задача учебная или практическая?
    Какой ёмкости должны получиться сети?
    Сети с адресом 10.1.12.192 /23 не существует, так как биты закрытые маской не равны нулю.
    Адрес 10.1.12.192 /23 принадлежит сети
    10.1.12.0
    Подсеть задаётся маской.
    Бьём текущую сеть на 2:
    10.1.12.0/24
    10.1.13.0/24
    В каждой по 256 адресов.

    Далее одну из них бьём ещё на2. Например первую
    Получаем подсети:
    10.1.12.0/25
    10.1.12.128/25
    10.1.13.0/24
    В первых - по 128 адресов, в третьей - 256 адресов
    Ответ написан
    Комментировать
  • Как лучше сделать базу данных?

    @Everything_is_bad
    В итоге работа с этой таблицей может стать крайне затруднительной, а в последствии и не возможной.
    это ты придумал

    На сколько будет эффективно, создавать для каждого пользователя отдельную. таблицу операций, с уникальным обозначением и дальнейшим ведением учета операций в этой таблице?
    типичная ошибка новичка.

    Короче, у тебя нет опыта, ты подобную базы не способен самостоятельно спроектировать. Начни делать правильно, как написано в книгах, оптимизаций займешься потом, с 99% у тебя не будет столько пользователей, чтобы возникли проблемы.
    Ответ написан
    Комментировать