• Почему подключение к MySQL идет без пароля?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Когда в консоли ввожу mysql, то выдается такая ошбика:

    ERROR 1045 (28000): Access denied for user 'ghjjj'@'localhost' (using password: NO)

    MySQL сам придумать учётку не может. Вариантов два:

    1. Вводя mysql, ты на самом деле запускаешь не исполняемый модуль CLI, а некий скрипт, который уже запускает CLI с некими параметрами. Ищи этот скрипт, разбирайся, откуда он взялся и что задаёт в опциях запуска.

    2. CLI берёт имя пользователя из файла установок (my.ini, секция [client]). Находи и исправляй.
    Ответ написан
    Комментировать
  • Что значит Set в языке VBA?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Знак присвоения без SET присваивает скалярное значение. А с SET - ссылку на объект. То есть использовать его или нет - зависит от типа значения справа от знака присвоения. Ну и желаемого результата, конечно (включая и желание не получить ошибку несоответствия типов).

    Пример.

    • Откройте Excel.
    • Откройте окно редактора VBA (Ctrl-F11). Измените размеры окон так, чтобы видеть и таблицу, и редактор.
    • В редакторе добавьте модуль (Insert-Module).
    • Вставьте в модуль следующий текст:
      Sub test()
      Dim x, y
      Range("A1").Value = 123
      x = Range("A1")
      Set y = Range("A1")
      End Sub

    • Поставьте курсор в середину модуля, и начните пошаговое выполнение нажатием F8. Доведите исполнение до финального End Sub (когда эта строка будет подсвечена жёлтым цветом).
    • Откройте окно локальных переменных (View - Locals Window).

    Вы увидите, что первый оператор присвоения присвоил переменной x скалярное значение. Поскольку справа был объект, то в качестве скалярного значения было взято свойство объекта по умолчанию. Для объекта типа Range объектом по умолчанию является его свойство .Value - посему в переменную помещено значение 123. И соответственно переменная имеет тип Variant/Double.

    А вот второй оператор присвоения, использующий Set, поместил во вторую переменную y ссылку на объект Range. И переменная имеет тип Variant/Object/Range.
    Ответ написан
    Комментировать
  • Как вывести из sql таблицы все строки с совпадающими значениями?

    @Akina
    Сетевой и системный админ, SQL-программист.
    WITH cte AS (
        SELECT a, b, c, COUNT(*) OVER (PARTITION BY a, c) cnt
        FROM table
    )
    SELECT a, b, c
    FROM cte 
    WHERE cnt > 1
    Ответ написан
    1 комментарий
  • Не хочет связываться таблица почему?

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

    Надо, чтобы в поле cat_id таблицы post уже присутствовало значение, которое ты присваиваешь полю id во вставляемой записи.
    Ответ написан
    1 комментарий
  • Как получить timestamp,обрезав пустое время?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Не делай так. Единообразие - это очень полезная штука. Если оставить нулевую компоненту времени, то конечному пользователю не придётся думать, действительно ли там нули, или время не отображается из-за какого-то косяка..
    Ответ написан
  • Каким образом стоит соединить оптоволкно с витой парой?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Оптоволокно обеспечивает магистральную передачу.
    Соответственно оптика разваривается на панель в кроссовой и оптическим патч-кордом подключается к транковому оптическому порту магистрального коммутатора (скорее всего L2+), в который вставлен оптический модуль. На обеих сторонах.
    Ответ написан
  • Разводка интернет-кабелей в квартире. Что делать?

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

    1. Убрать круглую закрывающую пластину, вместо неё смонтировать прямоугольную, отстоящую от стены на сантиметр. На неё смонтировать 4 накладные RJ-45 розетки. Или две двойные.

    2. Там где "интернет-кабель, по которому сейчас идет интернет, далее по двум парам соединяется с другим кабелем" - разъединить, вывести входящий кабель к одной из RJ-45 розеток и расшить на неё.

    2. Три кабеля, которые заходят в щиток, аккуратно вывести из него под электророзетку, которая правее верхнего правого угла щитка, и далее вверх под пластину. Расшить на остальные RJ-45 розетки.

    3. Роутер расположить выше, либо на полке над щитком, либо на стене, либо пластину сделать побольше и крепить на неё. Запитать от вышеупомянутой электророзетки. Соединить с накладными RJ-45 розетками патч-кордами минимально-достаточной длины (думаю, 0.3 метра хватит).

    Размер прямоугольной пластины посчитать, исходя из количества RJ-45 розеток и того, будет ли на неё монтироваться роутер. Материал - любой пластик миллиметра 2-3 толщиной. Все кабели (кроме патч-кордов, есссно) должны прятаться за ней и не вылезать.

    Все розетки расшивать на 8 жил по 468В, есссно.
    Ответ написан
  • Как клиенту самостоятельно менять фотографии в документе PDF?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Попробуйте PDF24. По-моему, этот комбайн умеет всё - ну разве что за пивом не бегает...
    Ответ написан
    Комментировать
  • Как оптимально сделать выборку из БД?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Применительно к данной конкретной задаче:
    • СУБД предназначена для хранения и обработки массивов данных.
    • ЯП предназначен для обеспечения пользовательского интерфейса этого процесса и управления им.


    По-моему, выбор стороны для проведения обработки очевиден.
    Ответ написан
    Комментировать
  • "Destionation host unreachable" и "Заданный узел недоступен" между двумя устройствами Windows и Linux. Как починить?

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

    Оба устройства подключены к встроенному свичу роутера. Передача пакетов должна выпоняться без участия маршрутизирующей части роутера.

    "Destionation host unreachable" и «Заданный узел недоступен» в переводе на русский означают следующее: я знаю, как отправить пакет на узел назначения, я отправил, но ответ не пришёл.

    Ну раз так, то начинаем усиленный мониторинг пакетов. Пинг вышел со станции-источника в кабель? пришёл на роутер? вышел с роутера на узел назначения? достиг его? и всё то же с ответом в обратном направлении. В принципе достаточно просто смотреть счётчики пакетов/байтов, нам детали неважны. Задача - определить, когда пакет теряется. 90% за то, что он приходит на роутер, но не выходит к узлу назначения.

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

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

    ... то получится база, в которую удобно записывать, в которой удобно хранить, из которой удобно извлекать - и всё. Любые другие действия - поиск, изменение, сортировка, парсинг и пр.- совершенно неудобны. И с производительностью у них не очень. Так что лучше прикопать эту идею по-тихому, чтобы никто не заметил.

    Кстати, ковыряние JSON руками... либо JSON не более сотни байт, либо ни разу не развлечение (если ты не мазохист, конечно).
    Ответ написан
    Комментировать
  • Чем меньше символов, пробелов и пропусков в коде, тем лучше?

    @Akina
    Сетевой и системный админ, SQL-программист.
    чем меньше символов и пустых строк в коде, тем лучше?

    Как правило, чем меньше символов и пустых строк в коде, тем он менее читабелен (знаменитое ДвестипидисятВагонофПидарасоф - не рассматриваем). Как следствие - труднее понимаем. Это - лучше? мне лично кажется строго наоборот.

    Конечно, имеется в виду случай, когда (с точностью до имён переменных - пробелов - переводов строк) код абсолютно тот же.
    Ответ написан
    Комментировать
  • Как узнать 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.

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