• Как узнать root пароль от mysql zabbix сгенерированный при установке?

    @Akina
    Сетевой и системный админ, SQL-программист.
    как узнать/сменить root mysql

    Узнать - никак, если не указано в документации.
    Сменить - How to Reset the Root Password, и лучше сразу Resetting the Root Password: Generic Instructions.
    Ответ написан
    3 комментария
  • Как увеличить скорость загрузки данных в Mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    оффтоп
    Загрузка большого объёма данных через штатные средства резервного копирования - вообще занятие для записных мазохистов. Впрочем, 40 гигов в .SQL - это немного...


    Если база, которую надо скопировать/переместить на другой хост, сейчас жива, доступна, и допускает некоторый даунтайм (необходимый на создание её полной копии в файловой системе), а также версия исходного и целевого серверов совпадает, то следует использовать именно путь переноса файлов данных.

    Если даунтайм недоступен или версии серверов различаются, но исходная база доступна, надо сделать бэкап структуры, и отдельно бэкап данных в формат CSV. Структуру поделить на две части - собственно таблицы и всё остальное. Затем восстановить таблицы, в них скопировать данные, затем наслоить все остальные объекты.

    Если же исходная база недоступна - то запускай развёртывание бэкапа и сиди-жди, другого пути нет.

    На другом форуме нашел решение, мол добавить эти значения:

    Эти значения критично зависят от железа хоста. И на твоём хосте запросто вместо ускорения можно поиметь изрядное замедление.

    Опять же - корректируя innodb_buffer_pool_size, нужно корректировать innodb_buffer_pool_chunk_size и/или innodb_buffer_pool_instances. И вообще - см. https://dev.mysql.com/doc/refman/5.7/en/innodb-buf... (перейди на справку для своей версии, если нужно).
    Ответ написан
    Комментировать
  • Как можно использовать Foreign Key?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Запомните одну вещь. Многие её забывают или не знают, и из этого проистекают все их проблемы.

    Внешний ключ (FOREIGN KEY) - это ПРАВИЛО. Всё остальное - либо дополнения, либо следствия. Народ начинает рассказывать про индексы и прочее - НЕТ! Не включайте всё это в определение собственно внешнего ключа.

    Хотя оно хранится в структуре таблицы, оно является не частью структуры таблицы, а инструкцией, которая будет обрабатываться подсистемой контроля целостности и непротиворечивости данных - есть такая в составе SQL-сервера.

    Это правило устанавливает, что при добавлении/изменении значения следует проверить существование нового значения в ссылочной таблице. И наоборот - при удалении следует проверить отсутствие удаляемого значения в ссылающейся таблице. То есть правило работает в обе стороны - влияет не только на таблицу, в которой оно определено, но и на упомянутую в правиле таблицу, при этом в структуре ссылочной таблицы никакого упоминания о существовании этого правила нет. Но, поскольку подсистема контроля - это подсистема уровня сервера, то ей плевать, где прописано.

    Это правило может быть дополнено опциями каскадной операции ON DELETE/UPDATE - в этом случае после контроля нового значения подсистема даёт дополнительную команду на выполнение указанных в опции изменений зависящих данных.

    Впрочем, создание внешнего ключа может и приводить к изменению структуры. Но не той таблицы, в которой создаётся внешний ключ, а в той, на которую этот ключ ссылается. дело в том, что для эффективной работы подсистемы контроля в ссылающейся таблице должен существовать индекс, который может и будет использоваться для эффективного контроля. То есть либо выражение внешнего ключа должно совпадать с выражением индекса, либо быть его префиксом. Некоторые СУБД при отсутствии такого индекса создают его автоматически, некоторые завершают попытку создания с ошибкой.

    Также создание внешнего ключа приводит к выполнению дополнительного контроля такого индекса поддержки, если он удаляется. Если нет другого индекса, который может использоваться для поддержки, то операция удаления индекса будет заблокирована.
    Ответ написан
    Комментировать
  • Как обновить сразу все записи с уникальным ключом?

    @Akina
    Сетевой и системный админ, SQL-программист.
    create table test(
      id SERIAL PRIMARY KEY,
      num int,
      t text,
      constraint u_constrainte unique (num, t) DEFERRABLE 
    )

    https://dbfiddle.uk/VuwdSZSH

    Можно ли как то сделать сортировку того что нужно обновить перед тем как собственно обновлять записи?

    Нет.
    Ответ написан
    3 комментария
  • Как сделать поиск в ячейке по знаку " с помощью VBA?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Для поиска двойной кавычки используется строковый литерал из четырёх двойных кавычек
    Instr(start, variable, """")
    Первая и последняя обрамляют литерал, вторая и третья образуют удвоенную двойную кавычку, которая интерпретируется как квотированная/экранированная.

    Есть и более простой способ.
    Instr(start, variable, Chr(34))

    -=о=--=о=--=о=--=о=--=о=--=о=--=о=-

    У меня в ячейки есть текст:
    ДООП "Лабаратория Хлеба" естественно-научной направленности

    Надо что бы она в соседнюю ячейку написал:
    ДООП "Лабаратория Хлеба"

    Если ты точно знаешь, что значение содержит не менее 2 двойных кавычек, и нужно отделить именно до второй включительно, можно так:
    Function get2dquotes(source As String) As String
        Dim tmp() As String
        tmp = Split(source, Chr(34))
        get2dquotes = tmp(0) & Chr(34) & tmp(1) & Chr(34)
    End Function

    И соответственно потом B1=get2dquotes(A1).
    Ответ написан
    1 комментарий
  • Как сделать ежесекундную обработку действий?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Ответ написан
    Комментировать
  • Драйвера видеокарты?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Драйвер обычно удалять не требуется.

    Случаи/причины, когда драйвер нужно удалять:
    • драйвер занимает очень много места, а свободного пространства мало (характерно для видеокарт, звуковых карт и принтеров некоторых вендоров)
    • устройство будет потом возвращено, но нужно будет установить к нему дефолтный драйвер либо обновлённый от производителя


    Удаление драйвера, установленного отдельным инсталлятором, выполняется через Установка и удаление программ. Удаление драйвера, установленного автоматически или вручную через диспетчер устройств, выполняется с помощью удаления устройства в диспетчере оборудования, при котором будет выдан дополнительный запрос на удаление драйвера. Если запрос был выдан - следует удалить драйвер, перегрузиться и повторить удаление, бывает, что на устройство ставилось последовательно несколько драйверов, и их придётся описанным способом удалять их по одному. Повторять до тех пор, пока очередное удаление пройдёт без предложения удалить также и драйвер.

    Драйвер для устройства ставится исключительно по точному совпадению идентификатора устройства (Диспетчер устройств - нужное устройство - Свойства - Сведения - ИД оборудования - значения VEN_xxxx&DEV_yyyy). Попытка установки драйвера при несовпадении идентификатора в драйвере приведёт как минимум к паре запросов типа "Вы действительно хотите ... ?". Да и корректность работы (и вообще работа - вплоть до BSOD при загрузке) в случае установки неподходящего драйвера не гарантируется...
    Ответ написан
    Комментировать
  • Как расставить права на базу данных для сайта?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Глобально: никакие.

    Уровня БД либо отдельных объектов БД: данные - всё, кроме FILE; структура - CREATE TEMPORARY TABLES и (если используются хранимые объекты) EXECUTE.

    Ну а далее - плюс дополнительные необходимые права, в зависимости от кривизны структуры и работы с базой.
    Ответ написан
    Комментировать
  • Как поместить два устройства на одном коммутаторе в разные подсети?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если то, что обозначено на схеме словами Switch1 - неуправляемый коммутатор, то может спасти MAC-based VLAN на порте роутера, подключенном к этому неуправляемому коммутатору. Впрочем, единый широковещательный домен никуда не денется.
    Ответ написан
  • Как сделать SQL запрос из двух таблиц?

    @Akina
    Сетевой и системный админ, SQL-программист.
    В синтаксисе MySQL:
    SELECT c.name category_name, p.id post_id, p.name post_name, p.title post_title
    FROM posts p
    JOIN categories c ON p.category_id = c.id
    UNION ALL
    SELECT name, NULL, NULL, NULL
    FROM categories 
    ORDER BY category_name, post_id IS NOT NULL

    Соответственно если в поле post_id обнаруживается NULL, то в этой записи категория, и она рисуется как категория. Если же там не NULL - то это пост, и он рисуется со смещением.

    Дурь, конечно, но для сельской местности сойдёт..
    Ответ написан
    1 комментарий
  • Как можно поднять терминальный сервер на Astra Linux?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Комментировать
  • Как удалить ненужные и добавить нужные кодировки MySQL8?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Во-первых, всё указанное - ни разу не кодировки. Это COLLATION - набор правил сравнения строковых значений.

    Во-вторых, убирать/удалять ничего не нужно. То, что не используется, ресурсов не потребляет.

    В третьих, добавление нужных кодировок и правил сравнения подробно описывается в документации:

    Adding a Character Set
    Adding a Collation to a Character Set

    Ну и вообще желательно изучить весь раздел Character Sets, Collations, Unicode.
    Ответ написан
    6 комментариев
  • PyMySQL не хочет принимать определенный запрос, в чем может быть проблема?

    @Akina
    Сетевой и системный админ, SQL-программист.
    DELIMITER - это не SQL-запрос, а команда клиента. PyMySQL - это не клиентская программа, а библиотека доступа, которая ни про какой DELIMITER не знает и знать не должна. Отсюда и ошибка. Опять же - нет никакого смысла напихивать в код лишнюю логику, без которой можно спокойно обойтись.

    А если от всей лишней шелухи избавиться, то от всей логики останется один-единственный оператор. Который сделает использование DELIMITER и вовсе ненужным.

    CREATE TRIGGER setUUID 
    BEFORE INSERT ON users
    FOR EACH ROW 
    	SET NEW.uuid = COALESCE(NEW.uuid, UUID());
    Ответ написан
    1 комментарий
  • Как реализовать first_value(field) с фильтром на field внутри окна?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT 
      *,
      FIRST_VALUE(CASE WHEN banner_id IN (13,14,15,17)
                       THEN banner_id 
                       END) OVER (PARTITION BY id
                                  ORDER BY CASE WHEN banner_id IN (13,14,15,17)
                                                THEN banner_id 
                                                END DESC NULLS LAST) max_banner_id_1,
      FIRST_VALUE(CASE WHEN banner_id IN (4,177,178)
                       THEN banner_id 
                       END) OVER (PARTITION BY id
                                  ORDER BY CASE WHEN banner_id IN (4,177,178)
                                                THEN banner_id
                                                END DESC NULLS LAST) max_banner_id_2
    FROM test
    ORDER BY banner_id
    Ответ написан
    1 комментарий
  • Подсчёт кол-ва детей у сотрудников access?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Неправильный тип связи. Должно быть "все записи из Список и только соответствующие из Дети".

    Топнуть правым батоном точно в соединяющую линию, выбрать Параметры объединения. Итогово должна быть стрелка от Список к Дети.

    После этого - группировка по всем полям из Список и количество из Дети.
    Ответ написан
    Комментировать
  • В каких случаях нужно делать перекрёстный обжим сегодня?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Всё современное оборудование имеет Auto MDI/MDIX detection и не требует кроссовых кабелей.

    Кроссовые кабели обязательны при соединении двух оконечных или двух транзитных устройств, не поддерживающих автоопределения, и рекомендуются при соединении двух устройств, если оба являются оконечными (клиентскими) либо оба транзитными, и одно из них не поддерживает автоопределение.
    Ответ написан
    Комментировать
  • Как настроить правило firewall на mikrotik?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Firewall rule:

    Chain - forward
    Dst. address - блокируемый сайт
    In interface - порт к коммутатору
    Action - drop
    Ответ написан
  • Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

    @Akina
    Сетевой и системный админ, SQL-программист.
    PRIMARY KEY - первичный ключ. Поле, комбинация полей либо выражение (последнее MySQL не поддерживает), которое не может быть NULL и не допускает дубликатов (уникально для каждой отдельной записи в пределах таблицы). Поддерживается путём создания соответствующего уникального индекса и наложением ограничения NOT NULL на все используемые в выражении поля. По факту - однозначно идентифицирует запись. Кроме того, в MySQL выражение первичного ключа является кластерным индексом. См. Индекс -> Уникальный индекс -> Первичный индекс.

    CONSTRAINT - ограничение. Правило, которое не допускает создания записи, для которой значение выражения ограничения имеет значения FALSE (можно TRUE или NULL).

    FOREIGN KEY - внешний ключ. Ограничение, которое требует, чтобы указанное выражение для текущей записи присутствовало среди значений указанного выражения референсной таблицы (допускается и внешний ключ на ту же таблицу). Точнее, чтобы такая проверка присутствия не возвращала FALSE (можно TRUE или NULL).

    REFERENCES - определяет референсную таблицу и референсное выражение.

    INSERT INTO - запрос, вставляющий новые записи в таблицу.
    Ответ написан
    Комментировать
  • VLAN в одном Aruba 1930 (JL685A) реально сделать без маршрутизации?

    @Akina
    Сетевой и системный админ, SQL-программист.
    1. Перенастроить одну из рабстанций, сделать на станциях непересекающиеся подсети.
    2. В сервер добавить вторую сетевую карту и подключить к коммутатору.
    3. Один из портов к серверу включить в VLANID=10, второй соответственно VLANID=11.
    4. Настроить интерфейсы сервера на соответствующие подсети.
    5. Убедиться, что на сервере выключена маршрутизация между интерфейсами.

    63e4cd2f2ef71408657730.png

    --------------------------------------

    Valentin Barbolin выложил ссылку на документацию, что позволяет предложить более простое решение.

    Для организации изоляции портов используется настройка Protected Ports (стр. 198).

    В показанной в вопросе схеме все три порта (2, 3 и 48) включаются как untagged в один и тот же VLAN (например, в VLANID = 100). После чего порты 2 и 3 настраиваются как protected. В итоге трафик с портов 2 и 3 может форвардиться только и исключительно в порт 48, поскольку он в данном VLANID - единственный незащищённый. В то же время трафик с порта 48 может форвардиться в любой порт данного VLAN.

    63e4df7182131904050298.png

    Да, абсолютной изоляции в этой схеме не добиться. Например, если компьютер запросит с сервер список известных NetBIOS-ресурсов, то в списке будет и второй компьютер. Хотя он и будет недостижим.
    Ответ написан
  • Как узнать CIDR или маску подсети по голому ip адресу?

    @Akina
    Сетевой и системный админ, SQL-программист.
    В общем случае нерешаемо.

    Максимум - можно получить сведения о диапазоне, в который входит целевой IP, по учётным данным регистратора. Но вот как выделенный диапазон порезал его арендатор, и в какой подсети находится целевой адрес, определить в общем случае невозможно.
    Ответ написан
    3 комментария