Ответы пользователя по тегу MySQL
  • Как переконфигурировать БД в utf8?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;') as sqlcode
          FROM `information_schema`.`TABLES` t
        WHERE 1
           AND t.`TABLE_SCHEMA` = 'mybasename'
         ORDER BY 1;
    Ответ написан
    Комментировать
  • Оптимизация mysql 8.0.15 only innodb под 400млн запросов в сутки?

    VELIK505
    @VELIK505 Автор вопроса
    Руководитель департамента profitcentr.com
    всё таки удалось добить как надо и заставить хавать все потоки и всю ОЗУ.
    5ca0ae18d6c3e628848416.jpeg
    Рабочий действущий конфиг:
    spoiler
    [client]
    port		= 3306
    socket		= /var/run/mysqld/mysql.sock
    default-character-set = utf8mb4
    
    [mysqld_safe]
    socket		= /var/run/mysqld/mysql.sock
    nice		= 0
    
    [mysqld]
    sql-mode="NO_ENGINE_SUBSTITUTION"
    pid-file	= /var/run/mysqld/mysqld.pid
    socket		= /var/run/mysqld/mysql.sock
    datadir		= /var/lib/mysql
    log-error	= /var/log/mysql/error.log
    port		= 3306
    tmpdir      = /dev/shm
    basedir		= /usr
    user		= mysql
    skip-external-locking
    skip-log-bin
    skip_name_resolve
    connect_timeout = 80
    interactive_timeout = 80
    wait_timeout = 80
    net_write_timeout = 80
    join_buffer_size = 32M
    max_connect_errors = 30
    max_allowed_packet = 64M
    table_open_cache = 8192
    thread_stack = 384K
    thread_cache_size = 500
    max_connections = 3000
    net_buffer_length = 96K
    max_heap_table_size = 1024M
    tmp_table_size = 16384M
    read_buffer_size = 196M
    sort_buffer_size = 196M
    read_rnd_buffer_size = 196M
    #default_authentication_plugin = mysql_native_password
    #validate_password.check_user_name=OFF
    #validate_password.dictionary_file=0
    #validate_password.length=0
    #validate_password.mixed_case_count=0
    #validate_password.number_count=0
    #validate_password.policy=LOW
    #validate_password.special_char_count=0
    net_read_timeout=500
    max_binlog_size         = 100M
    log_error = /var/log/mysql/mysql_errornew.log
    log_slave_updates = OFF
    innodb_log_compressed_pages = OFF
    sync_binlog = 0
    innodb_autoinc_lock_mode = 2
    innodb_buffer_pool_size = 32768M
    innodb_log_file_size = 4096M
    innodb_log_buffer_size = 16M
    innodb_flush_log_at_trx_commit = 2
    innodb_buffer_pool_instances = 16
    innodb_buffer_pool_chunk_size = 256M
    innodb_flush_method = O_DIRECT_NO_FSYNC
    innodb_stats_on_metadata = 0
    innodb_log_spin_cpu_abs_lwm = 80
    innodb_log_spin_cpu_pct_hwm = 50
    innodb_log_wait_for_flush_spin_hwm = 400
    innodb_parallel_read_threads = 4
    innodb_open_files =	65536
    innodb_sort_buffer_size = 64M
    innodb_read_io_threads = 8
    innodb_write_io_threads = 8
    innodb_io_capacity = 1000
    innodb_doublewrite = 0
    innodb_page_cleaners = 16
    innodb_lock_wait_timeout = 80
    character-set-server=utf8mb4
    collation-server=utf8mb4_0900_ai_ci
    init-connect="SET NAMES utf8mb4"
    skip-character-set-client-handshake
    [mysqldump]
    quick
    quote-names
    max_allowed_packet	= 64M
    default-character-set = utf8mb4
    
    [mysql]
    default-character-set = utf8mb4
    
    [isamchk]
    key_buffer=512M
    sort_buffer=512M
    read_buffer=512M
    write_buffer=512M

    Ответ написан
    1 комментарий
  • Как исправить ошибку MySQL server has gone away совместно с peewee?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    Как можно решить эту проблему, чтобы peewee спокойно работал с бд и не терял связь?

    Ну например так https://docs.oracle.com/cd/E17952_01/connector-pyt...
    https://dev.mysql.com/doc/connector-python/en/conn...
    Ответ написан
  • Как отключить кэш запросов MySql для текущей сессии пользователя?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    SET SESSION query_cache_type = OFF не то?

    нет не то. надо:
    query_cache_type = 0
    query_cache_size = 0
    если не сработает так то покажите вывод:
    mysql> SHOW VARIABLES LIKE 'query_cache_%';
    Ответ написан
  • Ошибка has exceeded the 'max_connections_per_hour'(current value: 6000). В чем причина?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    GRANT USAGE ON * . * TO 'xxxxxxxxx'@'localhost' IDENTIFIED BY 'xxxxxxxxx' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
    Ответ написан
    4 комментария
  • Почему падает MySQL?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    Не, не помогло(

    ты в какой секции увеличивал max_allowed_packet ?
    увеличь в секции
    [mysqld] и в [mysqldump] ещё и таймауты надо увеличить будет скорее всего.
    mysql> show variables like '%time%';
    что выдаёт?
    Ответ написан
    Комментировать
  • Почему phpmyadmin может не запускаться/работать?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    Я понимаю. что сложный запрос с 70000 записей может не сработать за минуту, но висеть часами это уж слишком.

    такое дело лучше через ssh(putty) делать.
    А так вообще в php.ini увеличивайте max_execution_time, max_input_time, memory_limit, в nginx.conf увеличивайте
    client_max_body_size, client_body_timeout, client_header_timeout, send_timeout и если пых как fcgi то то тоже увеличивайте вот эти таймауты fastcgi_send_timeout и fastcgi_read_timeout
    должно помочь.
    Ответ написан
    Комментировать
  • VESTA mysql socket, почему жрет столько ресурсов мускул?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    надо вывод команд top и htop зырить. Ещё free -m покажи чего показывает. Логи зырить мускуля и пыха.
    Пересобери php как php-fpm (удали апач) уже в разы будет меньше нагрузки. /var/spool/cron чего там есть интересного?
    Ответ написан
    Комментировать
  • Не удается подключиться удаленно к mysql (IP address could not be resolved), как исправить?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    выруби iptables на обоих серверах:
    /etc/init.d/iptables stop
    service iptables stop
    и пробуй
    Ответ написан
  • Как обновить версию MySQL на CentOS 6?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    а сейчас какая версия?
    а вообще
    yum update mysql-server
    Ответ написан
  • Появилась проблема с mysql?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    AVC apparmor="DENIED" operation="open"
    Надо правильно настроить apparmor
    Ответ написан
    2 комментария
  • MySQL с движком MEMORY vs MySQL InnoDB/MyISAM & Memcached?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    1) Удаляются-ли эти данные при перезапуске (restart) сервера? Или же, хранятся, как обычные данные в вышеупомянутых движках?

    Удаляются. Причём удаляются не только при перезагрузке сервера но и самого mysql.

    2) Стоит-ли переходить на этот движок, отказываясь от memcached? Сейчас у меня есть небольшой, спящий проект, в котором запросы get кэшируются с помощью memcached. Но движок memory - это и есть само себе кэширование.

    Мемкеш даже наверное получше будет в целом. А вообще от перемены мест слагаемых сумма не меняется.
    Ответ написан
    1 комментарий
  • Внезапные тормоза MySQL. Что может вызывать?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    Ну так а Copying to tmp table а дальше чё? какой запрос? Сделай его EXPLAIN. tmp_table_size увеличить скорее всего временные таблицы mysql в tmpfs помести (tmpdir дирректория).
    прогони mysqltuner он тебе выдаст рекомендации. Ну и неплохо бы потом my.cnf приложить и логи error mysql. И очень хорошо бы обновится до более новой версии mysql. Посмотреть какие кроны может запускаются в это время? Смотреть что во время этой нагрузки в top и htop происходит и ps aux чекать.
    Ответ написан
  • Таблица в MariaDB весит 321Мб, как заставить быстро работать?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    1. Вы mysqltuner запустили не дав проработать даже 24 часа бд. Лучше попозже его ещё раз глянуть.
    2. Выполнить все его рекомендации.
    3. Вес таблицы не особо большой. А сколько там строк?
    4. Что именно беспокоит то? Медленные запросы отследите ведите slow log и error log mysql смотрите что туда будет падать. Оптимизируйте тяжелые запросы.
    5. Можете поставить утилитку mytop и следить в режиме реального времени на плохие запросы. потом их оптимизировать.
    6. Использовать индексы. Если используются пересмотреть правильно ли проиндексирована таблица.
    7. По медленным запросам можно использовать explain.
    8. Если таблица innodb то можно ускорить её работу отключением сброса данных на диск innodb_flush_log_at_trx_commit = 2. (но тут есть свои подводные камни загуглите).
    9. Можно настроить перемещение временных файлов mysql не на диск а в tmpfs (дирректива tmpdir ) это ускорит немного совсем работу всего mysql сервера.
    10. query cache - настройте. кто бы что не говорил он помогает. (но так же надо тестировать может в вашем случае будет лучше а может и нет)
    11. key buffer size настройте в соответствии с ОЗУ
    12. Если совсем много rps (да и в любом случае) крутаните ядро расширьте лимиты /etc/sysctl.conf /etc/security/limits.conf
    13. Ну и конечно что итак понятно использовать хороший сервер многоядерный с ssd в raid-e.
    14. Ну и конечно убедитесь что правильные типы полей используйте в таблице возможно можно ещё оптимизировать саму архитектуру таблицы. Тем самым при использовании правильных типов можно и вес снизить таблицы.
    15. Возможно в таблице куче не нужных записей которые уже никогда не пригодятся и их надо чистить по крону раз в сутки допустим?
    16. Ну и конечно для ускорения работы всего mysql сервера не писать bin log и general log.
    17. Если табличка myisam то может сильно дефрагментируется? иногда можно и optimize table выполнять тогда.
    18. Если совсем всё мощно и дохрена запросов к ней (хайлоад проект) то уже смотреть можно в сторону кластера/репликации.
    Ответ написан
    Комментировать
  • Не удаляется mariaDB с ubuntu?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    скорее всего вы уже всё загавнили в том числе и стороними репозиториями.
    1. сначала удалите всё что связано с mariadb и mysql выполните:
    find / -name 'mysql*' и find / -name 'maria*' (и удаляем)
    2. sudo apt-get autoclean
    3. sudo rm /var/lib/dpkg/info/*
    4. далее выполняем apt-get remove mysql* и apt-get remove mariadb* (только смотри какие пакеты будет удалять).
    5. далее выполни: dpkg --audit и он тебе выдаст информацию о пакетах mysql mariab
    6. открывай /var/lib/dpkg/status от рута.
    вычищай всю информацию о пакетах перечисленных командой dpkg --audit и сохраняй.
    7. далее sudo apt-get autoclean
    8. sudo apt-get update
    9. sudo apt-get -f install
    10. далее apt-get install gdebi-core
    11. wget https://dev.mysql.com/get/mysql-apt-config_0.8.8-1...
    12. gdebi mysql-apt-config_0.8.8-1_all.deb
    13. выберишь какую версию надо он запишет репозиторий и далее apt-get update и apt get install mysql-server
    Ответ написан
    Комментировать
  • Как сделать резервную копию БД без phpmyadmin?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    Как я понял доступа к ssh нету?
    Тогда зайлете в корень сайта phpminiadmin и через него сделайте тык
    Ответ написан
    Комментировать
  • Как изменить значение параметра max_allowed_packet?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    mysql> SET GLOBAL max_allowed_packet=268435456;
    Ответ написан
    Комментировать
  • Как установить utf-8 в MySQL по умолчанию?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    Всё можно поставить по дефолту. Открывай my.cnf
    в секции [client] пишешь:
    default-character-set = utf8

    далее в секции [mysqld] пишешь:
    character-set-server=utf8
    collation-server=utf8_general_ci
    init-connect="SET NAMES utf8"
    skip-character-set-client-handshake

    далее в секции [mysql] пишешь:
    default-character-set = utf8

    далее в секции [mysqldump] пишешь:
    default-character-set = utf8

    ребутни мускуль потом
    Ответ написан
    1 комментарий
  • Где настраивается конфиг innodb mysql?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    это my.cnf ? в нём и пишешь настройки innodb. Щас у тебя настройки все по умолчанию
    Ответ написан
    Комментировать