Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
linux:mysql:mysql_tnt
Различия
Показаны различия между двумя версиями страницы.
linux:mysql:mysql_tnt [2019/03/27 18:32] – внешнее изменение 127.0.0.1 | linux:mysql:mysql_tnt [2021/10/19 16:56] (текущий) – dx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== MySQL - tips' | ||
+ | {{: | ||
+ | |||
+ | См. также [[linux: | ||
+ | |||
+ | ===== Разное ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * http:// | ||
+ | |||
+ | ===== HowTo - Как сделать xyz? ===== | ||
+ | |||
+ | ==== query_cache_size ==== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== Как выключить query_cache ==== | ||
+ | |||
+ | Недостаточно поставить | ||
+ | |||
+ | < | ||
+ | |||
+ | Для полного отключения [[https:// | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Ротация slow query logs ==== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Пример файла ''/ | ||
+ | |||
+ | < | ||
+ | / | ||
+ | size 1G | ||
+ | dateext | ||
+ | compress | ||
+ | missingok | ||
+ | rotate 20 | ||
+ | notifempty | ||
+ | delaycompress | ||
+ | sharedscripts | ||
+ | nocopytruncate | ||
+ | create 660 mysql mysql | ||
+ | postrotate | ||
+ | / | ||
+ | endscript | ||
+ | rotate 150 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Дамп utf8mb4 ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | Для старых версий MySQL нужно использовать ключ совместимости | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | my.cnf | ||
+ | |||
+ | < | ||
+ | [client] | ||
+ | default-character-set = utf8mb4 | ||
+ | |||
+ | [mysql] | ||
+ | default-character-set = utf8mb4 | ||
+ | |||
+ | [mysqld] | ||
+ | character-set-client-handshake = FALSE | ||
+ | character-set-server = utf8mb4 | ||
+ | collation-server = utf8mb4_unicode_ci | ||
+ | </ | ||
+ | |||
+ | А вообще читайте [[https:// | ||
+ | |||
+ | ==== wtf 1 2 3 ==== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | ==== Вытащить базу из --all-databases ==== | ||
+ | |||
+ | Достать базу **db_name** если бэкап сделан '' | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Тюнинг MySQL — thread_cache_size ==== | ||
+ | |||
+ | Параметр '' | ||
+ | |||
+ | Этот параметр указывает количество тредов, | ||
+ | |||
+ | Выявить необходимость оптимизации параметра '' | ||
+ | |||
+ | < | ||
+ | |||
+ | Вывод | ||
+ | |||
+ | < | ||
+ | | Threads_cached | ||
+ | | Threads_connected | 28 | | ||
+ | | Threads_created | ||
+ | | Threads_running | ||
+ | </ | ||
+ | |||
+ | Если значение '' | ||
+ | |||
+ | Оптимальное значение '' | ||
+ | |||
+ | Рекомендуется постепенно повышать значение '' | ||
+ | |||
+ | ==== Соответствие версий MySQL-MariaDB ==== | ||
+ | |||
+ | ^ MySQL ^ MariaDB ^ | ||
+ | | 5.5 | 5.5 | | ||
+ | | 5.6 | 10.0/10.1 | | ||
+ | | 5.7 | 10.2 | | ||
+ | |||
+ | Также пригодится | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | **System variables** | ||
+ | ^ Variable ^ MariaDB in Debian ^ Standard MariaDB ^ Notes ^ | ||
+ | | character_set_server | utf8mb4 | latin1 | Debian sets a default character set that can support emojis etc. | | ||
+ | | collation_server | utf8mb4_general_ci | latin1_swedish_ci | | ||
+ | |||
+ | **Options** | ||
+ | ^ Option ^ MariaDB in Debian ^ Standard MariaDB ^ Notes ^ | ||
+ | | plugin-load-add | auth_socket.so | - | Debian enables the UNIX_SOCKET Authentication Plugin plugin by default, allowing passwordless login. | | ||
+ | ==== Как создать ER диаграмму имеющейся базы ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | Подробнее о ER-модели можно почитать [[http:// | ||
+ | |||
+ | Оказывается даже [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Еще есть [[https:// | ||
+ | |||
+ | ==== Как перенести myisam или innodb на другой сервер ==== | ||
+ | |||
+ | * https:// | ||
+ | * http:// | ||
+ | |||
+ | ==== Как изменить размер лога innodb (innodb_log_file_size) ==== | ||
+ | |||
+ | По-умолчанию установлен размер 5 МБ | ||
+ | |||
+ | < | ||
+ | mysql -e "show variables like ' | ||
+ | +----------------------+---------+ | ||
+ | | Variable_name | ||
+ | +----------------------+---------+ | ||
+ | | innodb_log_file_size | 5242880 | | ||
+ | +----------------------+---------+ | ||
+ | </ | ||
+ | |||
+ | Останавливаем MySQL сервер | ||
+ | |||
+ | < | ||
+ | |||
+ | Изменяем/ | ||
+ | |||
+ | < | ||
+ | [mysqld] | ||
+ | innodb_log_file_size = 64M | ||
+ | </ | ||
+ | |||
+ | Переименовываем существующие лог файлы | ||
+ | |||
+ | < | ||
+ | mv / | ||
+ | mv / | ||
+ | </ | ||
+ | |||
+ | Запускаем MySQL сервер | ||
+ | |||
+ | < | ||
+ | |||
+ | Проверяем лог файл | ||
+ | |||
+ | < | ||
+ | # tail -n 100 / | ||
+ | ... | ||
+ | 130730 13: | ||
+ | InnoDB: Setting log file ./ | ||
+ | InnoDB: Database physically writes the file full: wait... | ||
+ | 130730 13: | ||
+ | InnoDB: Setting log file ./ | ||
+ | InnoDB: Database physically writes the file full: wait... | ||
+ | 130730 13:17:37 InnoDB: highest supported file format is Barracuda. | ||
+ | InnoDB: The log sequence number in ibdata files does not match | ||
+ | InnoDB: the log sequence number in the ib_logfiles! | ||
+ | </ | ||
+ | |||
+ | ==== Секретная фича в Percona/ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== Изменить пароль пользователю ==== | ||
+ | |||
+ | < | ||
+ | $ mysql -h localhost -u root -p | ||
+ | |||
+ | mysql> UPDATE mysql.user SET Password=PASSWORD(‘new_db_password’) WHERE User=’db_user_name’ AND Host=’db_host’; | ||
+ | mysql> FLUSH PRIVILEGES; | ||
+ | mysql> quit; | ||
+ | </ | ||
+ | |||
+ | ==== Max memory usage ==== | ||
+ | |||
+ | Обычно считаюат так: | ||
+ | |||
+ | '' | ||
+ | |||
+ | Более продвинутый вариант: | ||
+ | |||
+ | '' | ||
+ | |||
+ | ==== Как сбросить root пароль для MySQL ==== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Останавливаем MySQL | ||
+ | |||
+ | < | ||
+ | |||
+ | Запускаем **mysqld_safe** с опцией **--skip-grant-tables** | ||
+ | |||
+ | < | ||
+ | # mysqld_safe --skip-grant-tables & | ||
+ | 140606 13:47:58 mysqld_safe Logging to '/ | ||
+ | 140606 13:47:58 mysqld_safe Starting mysqld daemon with databases from / | ||
+ | 140606 13:47:59 mysqld_safe mysqld from pid file / | ||
+ | </ | ||
+ | |||
+ | Подключаемся к MySQL с правами root. Т.к. MySQL запущен в безопасном режиме, | ||
+ | |||
+ | < | ||
+ | |||
+ | Выбираем базу данных mysql | ||
+ | |||
+ | < | ||
+ | |||
+ | Устанавливаем новый пароль для пользователя root | ||
+ | |||
+ | < | ||
+ | |||
+ | Перезагружаем привилегии | ||
+ | |||
+ | < | ||
+ | |||
+ | Отключаемся от MySQL | ||
+ | |||
+ | < | ||
+ | |||
+ | Останавливаем и вновь запускаем MySQL демон | ||
+ | |||
+ | < | ||
+ | / | ||
+ | или | ||
+ | # ps aufx | grep mysql | awk ' | ||
+ | или | ||
+ | # killall -9 mysqld_safe | ||
+ | </ | ||
+ | |||
+ | ==== Как очистить историю командной строки mysql (~/ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ==== Логи ==== | ||
+ | |||
+ | Как включить логи в MySQL? | ||
+ | |||
+ | Добавить в ''/ | ||
+ | |||
+ | < | ||
+ | [mysqld] | ||
+ | log-bin | ||
+ | log | ||
+ | log-error | ||
+ | log-slow-queries | ||
+ | </ | ||
+ | |||
+ | Файлы будут созданы автоматически в том же каталоге где лежат сами базы (обычно / | ||
+ | |||
+ | Если нужно указать другой путь к лог файлу | ||
+ | |||
+ | < | ||
+ | [mysqld] | ||
+ | log-bin | ||
+ | log = / | ||
+ | log-error | ||
+ | log-slow-queries = / | ||
+ | </ | ||
+ | |||
+ | Создадим файлы и выставим права | ||
+ | < | ||
+ | # touch / | ||
+ | # chown mysql:mysql / | ||
+ | # touch / | ||
+ | # chown mysql:mysql / | ||
+ | |||
+ | etc... | ||
+ | </ | ||
+ | |||
+ | Проверяем установленные переменные '' | ||
+ | |||
+ | < | ||
+ | |||
+ | Мало кто знает, но есть еще чудесный [[https:// |