Изменение кодировки MySQL-базы с latin1 на cp1251

Описание проблемы Допустим, у Вас есть база данных MySQL с кодировкой latin1. В ней не работает сортировка, русский текст не видно в phpMyAdmin и так далее. Вы хотите перевести её в правильную кодировку — cp1251, в которой фактически и находятся данные в базе. Однако простого способа это сделать нет. Решение Делаем полный бэкап базы. С помощью скрипта fixmyenc, текст которого приводится ниже, выполняем следующее: 1 perl fixmyenc HOST DATABASE USER PASSWORD >fixdb....

6 лютого 2022 · 4 хвилин · 732 слів · dimetrius

Размер баз данных и таблиц mysql

Смотрим размер баз данных mysql. Нашёл интересный запрос, который выводит результат в удобочитаемом виде. 1 2 3 4 SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "DB size in MB" FROM information_schema. TABLES GROUP BY table_schema; В результате получаем: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 +-----------------------+---------------------+ | database_name | Database size in MB | +-----------------------+---------------------+ | 3456models_wp | 6.75263977 | | 4563oems_wp | 1....

14 червня 2020 · 5 хвилин · 864 слів · dimetrius

Подготовка mysql

1 2 3 4 5 6 7 [mysqld] skip-external-locking bind-address = 127.0.0.1 skip-name-resolve = 1 sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION query_cache_size = 0 query_cache_type = 0

21 серпня 2019 · 1 хвилина · 24 слів · dimetrius

Заметки по mysql

В качестве памятки для себя… Если видим ошибку “The table ‘galleries’ is full”, увеличиваем значение heap_table_max_size Замена в таблице UPDATE articles SET text = REPLACE(text, 'http://', 'https://') WHERE text LIKE '%http://%';

15 серпня 2019 · 1 хвилина · 31 слово · dimetrius

Восстановление MySQL репликации после повреждения relay логов slave

Остановилась MySQL репликация на слейве (version 5.1.61). Slave_IO_Running было отмечено как Yes, но Slave_SQL_Running как No. Обычный перезапуск слейва не помог, значит требуется более детальный анализ проблемы. Похоже на то что повреждены relay логи слейва, т.к. тестирование с помощью “mysqlbinlog” показало ошибку. Следовательно, решением должно быть удаление текущих бинлогов слейва и указание слейву позиции с которой нужно продолжить репликацию из бинлогов мастера. Вот полный вывод команды “show slave status\G” на остановившемся слейв сервере:...

13 квітня 2016 · 3 хвилин · 449 слів · dimetrius

Импорт, или экспорт mysql баз данных с прогресс баром

Прогресс импорта, или экспорта mysql баз данных можно наблюдать с помощью консольного “Pipe Viewer”, или pv. Импорт pv /path/to/sqlfile.sql | mysql -uUSERNAME -pPASSWORD -D DATABASE_NAME Экспорт Для начала нам нужно узнать полный размер экспортируемых баз данных. Это можно посмотреть в таблице information_shema: 1 2 3 4 5 6 7 8 9 SELECT Data_BB / POWER(1024,1) Data_KB, Data_BB / POWER(1024,2) Data_MB, Data_BB / POWER(1024,3) Data_GB FROM ( SELECT SUM(data_length) Data_BB FROM information_schema....

13 квітня 2016 · 1 хвилина · 107 слів · dimetrius

Как разделить полный дамп mysql на отдельные базы

Как-то пришлось мне восстанавливать всего то несколько баз из полного бэкапа mysql, который содержал в себе все базы. Довольно долго сканировал интернет и кое что нашлось. Ниже будет приведён код скрипта, который мне в этом очень помог. Но, отработал он у меня корректно только на linux, на freebsd что-то у него не получалось. Cкрипт предназначен для разрезания MySQL-дампа с несколькими базами на отдельные базы. Файлы именуются по принципу: название_базы.номер_в_общем_дампе.sql Использование...

13 квітня 2016 · 2 хвилин · 254 слів · dimetrius

Конвертация таблиц mysql из MyIsam в InnoDB

Допустим у нас есть mysql база данных site_db, а в ней таблица tablename. Нам нужно конвертировать таблицу tablename из myisam в innodb. По идее всё просто. 1 2 3 mysql -u root -p USE site_db; ALTER TABLE tablename ENGINE=InnoDB; Но в жизни мы можем получить следующий ответ ответ 1 ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes И вот здесь можно побороться. SHOW CREATE TABLE tablename; Нам покажут много строк, среди которых будет строчка с текстом FULLTEXT KEY key_name (column_list)...

13 квітня 2016 · 1 хвилина · 153 слів · dimetrius

Некоторые параметры mysql innodb

В качестве заметки… При изменении innodb_log_file_size придется остановить сервер и удалить (или переименовать) старый лог файл, для чего могут потребоваться рутовые права. Если же старый файл не удалять, mysql просто откажется стартовать. Моя выжимка из конфига (не самая сильная dev-машина, 3G RAM, Dual CPU E2140 @ 1.60GHz) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [innodb] innodb_buffer_pool_size = 1024M innodb_flush_method = O_DIRECT innodb_log_file_size = 256M innodb_log_buffer_size = 4M innodb_flush_log_at_trx_commit = 2 innodb_thread_concurrency = 8 [mysqld] log_slow_queries = /var/log/mysql/mysql-slow....

13 квітня 2016 · 2 хвилин · 329 слів · dimetrius

Ротация логов mongodb (logrotate)

Пришлось на днях настроить ротацию логов mongodb. С logrotate не сложилось, там костыль на костыле и костылём погоняет. В общем используем встроенную функцию mongodb для ротации логов и немного ей помогаем. Создаём скриптик, а потом этот скриптик добавляем в крон. # vim /root/scripts/mongorotate.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #!/bin/bash ### log rotate /usr/bin/kill -USR1 $(cat /var/run/mongodb/mongodb.pid) ### compress newly rotated for f in /home/logs/mongodb/mongodb....

13 квітня 2016 · 1 хвилина · 191 слово · dimetrius