Ответы пользователя по тегу MySQL
  • Как восстановить базу sql из файлов /var/lib/mysql/* на другом сервере mysql?

    kotomyava
    @kotomyava
    Системный администратор
    Вам нужно установить mysql такой же или выше версии на другом сервере, перенести файлы, удостовериться, что права выставлены правильно и запустить mysql.
    Но это вряд-ли поможет вам "починить" базу. И скопируется не только одна база, но и все базы и пользователи.
    Ну и снять дамп, точно также, не получится, как на исходном сервере.

    Вам на самом деле, надо посмотреть где беда с collations и исправить её.

    upd: На всякий случай: я пишу о копировании всей /var/lib/mysql/, не отдельной папки с базой.
    Ответ написан
    Комментировать
  • Почему MySQL не хватает места?

    kotomyava
    @kotomyava
    Системный администратор
    Ваш раздел полностью занят, что видно по выложенным результатам df.
    Часть объёма файловой системы резервируется для пользователя root, и не может быть использовано mysql. По умолчанию 5%, если память мне не изменяет. Это можно изменить при установке, и можно управлять после с помощью:
    tune2fs -m
    Ответ написан
    1 комментарий
  • Могу ли я как то сохранить python код в MySql?

    kotomyava
    @kotomyava
    Системный администратор
    Можно сохранять как текст, потом получать селектом и выполнять через eval() или exec(). Но делать так не нужно.
    Вероятнее всего, ваша задача решается как-то иначе более разумным способом.
    Ответ написан
    Комментировать
  • Почему сайт на разных серверах загружается по разному?

    kotomyava
    @kotomyava
    Системный администратор
    Проблема в руках настраивающего, чаще всего, и крайне редко именно в софте.
    Надо уметь настраивать mysql, и находить причину проблем.

    Начать стоит с explain этого запроса там и там, и сравнения.
    Ответ написан
    5 комментариев
  • Тяжелая БД MySql. Как можно оптимизировать?

    kotomyava
    @kotomyava
    Системный администратор
    Во-первых, это не очень уж большая база.
    Во-вторых, конечно, посмотреть данные, и понять, что именно занимает много места, а там смотреть, нужное это или нет.
    Ответ написан
    2 комментария
  • Как в MySQL запросе добавить колонку в таблицу с проверкой наличия этой колонки?

    kotomyava
    @kotomyava
    Системный администратор
    Можно проверить в INFORMATION_SCHEMA наличие столбца:
    IF NOT EXISTS( SELECT NULL
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE table_name = 'jshopping_orders'
           AND table_schema = (SELECT DATABASE())
           AND column_name = 'bonus')  
    THEN
      ALTER TABLE `jshopping_orders` ADD bonus varchar(24) NOT NULL DEFAULT '';
    END IF;


    !Написано без проверки могут быть опечатки, работоспособность "как есть" не гарантируется. =)
    Ответ написан
  • Как правильно настроить Mysql на Ubuntu?

    kotomyava
    @kotomyava
    Системный администратор
    Нет какой-то одной правильной настройки на все случаи жизни. Всё зависит от нагрузок, самой базы, наличия ресурсов, используемых накопителей, и.т.п.

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

    Возможно также, что в вашем случае, проблема не в настройках, а узким местом является IO, с ним на многих виртуалках бывает всё довольно печально, даже когда вроде как заявляется, что они на SSD.
    Ответ написан
    Комментировать
  • Не могу войти в mysql после её установки?

    kotomyava
    @kotomyava
    Системный администратор
    1. Ваш сервер без дополнительной настройки не принимает соединений извне(bind-address=127.0.0.1 по умолчанию). И так правильно. Если надо подключиться, можно использовать туннель, например средствами ssh.

    2. Вам надо создать пользователя с правами подключаться через 127.0.0.1, или из внешней сети, если вы перенастроите-таки bind-address, по умолчанию пользователь root может подключаться только через сокет.
    Ответ написан
    Комментировать
  • Как узнать производительность с/без Memcached на shared хостинге?

    kotomyava
    @kotomyava
    Системный администратор
    А у вас действительно есть memcached на обычном хостинге?

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


    В простейшем случае, можно потестировать ab (apachebench).
    Ответ написан
    Комментировать
  • Как исправить ошибку MySQL server has gone away совместно с peewee?

    kotomyava
    @kotomyava
    Системный администратор
    Если соединение падает от длительности работы скрипта, то вам надо увеличить wait_timeout в настройках mysql, или, что правильнее, изменить логику его работы так, чтобы работа с базой не была размазана по всему времени выполнения(Нужна база - открыли соединение, сделали работу, закрыли соединение. А не открыли при инициализации, потом ничего не делаем, соединение отваливается, и тут вдруг нам оно понадобилось, а запрос падает с ошибкой).
    Ответ написан
    Комментировать
  • Падает сервер Mysql при нагрузке. Как настроить my.conf?

    kotomyava
    @kotomyava
    Системный администратор
    Ваш конфиг очень не соответствует вашим ресурсам.

    thread_cache_size = 32
    вам пары хватит.
    max_heap_table_size = 64M
    tmp_table_size = 64M
    Не при 512МБ на всё. 16 максимум, и оптимизируйте нормально запросы.
    query_cache_size = 32M
    Выключить вообще.
    bind-address = 0.0.0.0
    Вам нужны внешние подключения? Если нет, надо 127.0.0.1, если да, обязательно закрыть всё кроме нужных адресов на 3306 фаерволом.
    max_allowed_packet = 100M
    Вам не нужно столько наверняка.
    max_connections=1000
    Вы можете пару-тройку обслуживать не 1000 на такой виртуалке. 10 тут будет даже много, не то, что 1000.

    Панель снести, она вам не нужна.
    Все лишние сервисы на виртуалке изничтожить.
    Также, вероятно, у вас тут же веб сервер, который тоже надо правильно настроить.
    Ответ написан
    Комментировать
  • Как бороться с ошибкой MySQL server has gone away?

    kotomyava
    @kotomyava
    Системный администратор
    Может не укладываетесь в wait_timeout?
    Посмотрите, сколько он у вас, и сравните со временем выполнения скрипта.

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

    kotomyava
    @kotomyava
    Системный администратор
    На уровне настройки отличия кое-какие есть, вероятность что вам это будет важно не велика. На уровне совместимости с приложениями разницы фактически нет.
    Ответ написан
  • MySQL+PHP и компилируемый язык?

    kotomyava
    @kotomyava
    Системный администратор
    В вашей постановке задачи, проще всего сделать приложение с веб интерфейсом, можно и на том же php/java/python/что угодно. От того, компилируемый язык или нет используется, и какой, не зависит отказоустойчивость. Только от того как система спроектирована, и как продублированы точки отказа.

    Если правильно спроектировать веб интерфейс, то с ним будет удобно работать, и работать это будет как на десктопе, так и на мобильных устройствах, и не понадобится никаких дополнительных приложений.
    Ответ написан
    Комментировать
  • Почему MySql в bitrix не использует tmpdir для хранения временных файлов?

    kotomyava
    @kotomyava
    Системный администратор
    выдал 777 права на папку из под root,

    Mysql запускается не из под рута. А 777 это плохо. =) Надо сделать владельцем пользователя из под которого запускается mysql (чаще всего это, как ни странно mysql), и дать ему права на запись.
    Также, лучше не создавать лишние папки в /var/lib/mysql. Вдруг кто-то создаст базу tmp?

    зашёл по ftp - файлов в папке нет..

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

    Может ли быть дело в том что работает memcached?

    Никакого отношения он не имеет к mysql как таковому, и никак с ним не взаимодействует.
    Но если с его помощью кешируются данные приложения, и запросов к базе просто нет, то да. =)
    Ответ написан
    1 комментарий
  • Как создать пользователся в mysql с возможностью давать права только определенным пользователям?

    kotomyava
    @kotomyava
    Системный администратор
    Это можно сделать, только написав прослойку, которой будет пользоваться admin, и которая будет проверять данный сценарий работы, и иметь набор команд для управления пользователями. Средствами самого mysql такое не реализуется.
    Ответ написан
    2 комментария
  • Какой формат хранения JSON внутри?

    kotomyava
    @kotomyava
    Системный администратор
    В своём бинарном формате.
    Будет компактнее строки, но больше чем суммарный размер типов хранимых, т.к. там есть избыточность для оптимизации доступа. Оверхед будет зависеть от структуры, типов и вложенности.
    Ответ написан
    Комментировать
  • Как узнать пароль root от БД?

    kotomyava
    @kotomyava
    Системный администратор
    Узнать никак. Сменить можно запустив с параметром skip-grant-tables. Подробных описаний процедуры сброса пароля полно в сети.
    Ответ написан
  • Можно ли хранить mysql-базу на двух разных дисках?

    kotomyava
    @kotomyava
    Системный администратор
    Можно почитать вот это: https://dev.mysql.com/doc/refman/5.7/en/general-ta... создать tablespace на разных дисках и сгрупировать по ним таблицы так, чтобы равномерно использовать место и производительность дисков.
    Ответ написан
  • При смене версий PHP вырастает нагрузка на диск, что делать?

    kotomyava
    @kotomyava
    Системный администратор
    Проанализируйте, что же именно делает в это время mysql, хотя бы запустив mytop, и посмотрев explain частых и долгих запросов.
    У вас может просто отсутствовать какой-нибудь нужный индекс в таблице, или неудачно какой-то запрос составлен, и используется активно full scan или file sort.
    Ответ написан
    Комментировать