- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 456
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
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 2184
Смотрим размер баз данных mysql.
Нашёл интересный запрос, который выводит результат в удобочитаемом виде.SELECT table_schema "database_name",
sum( data_length + index_length )/1024/1024 "DB size in MB"
FROM information_schema.
TABLES GROUP BY table_schema;
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 2748
Допустим у нас есть mysql база данных site_db, а в ней таблица tablename.
Нам нужно конвертировать таблицу tablename из myisam в innodb.
По идее всё просто.
mysql -u root -p
USE site_db;
ALTER TABLE tablename ENGINE=InnoDB;
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 1670
В качестве памятки для себя...
1. Если видим ошибку "The table 'galleries' is full", увеличиваем значение heap_table_max_size
2. Замена в таблицеUPDATE articles SET text = REPLACE(text, 'http://', 'https://') WHERE text LIKE '%http://%'
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 2680
Прогресс импорта, или экспорта mysql баз данных можно наблюдать с помощью консольного "Pipe Viewer", или pv.
Импорт
pv /path/to/sqlfile.sql | mysql -uUSERNAME -pPASSWORD -D DATABASE_NAME
Экспорт
Для начала нам нужно узнать полный размер экспортируемых баз данных. Это можно посмотреть в таблице information_shema:
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.tables
WHERE table_schema IN ('DATABASE_NAME')
) A;
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 9544
Остановилась MySQL репликация на слейве (version 5.1.61). Slave_IO_Running было отмечено как Yes, но Slave_SQL_Running как No. Обычный перезапуск слейва не помог, значит требуется более детальный анализ проблемы. Похоже на то что повреждены relay логи слейва, т.к. тестирование с помощью "mysqlbinlog" показало ошибку. Следовательно, решением должно быть удаление текущих бинлогов слейва и указание слейву позиции с которой нужно продолжить репликацию из бинлогов мастера.
Вот полный вывод команды "show slave status\G" на остановившемся слейв сервере:
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 3898
Как-то пришлось мне восстанавливать всего то несколько баз из полного бэкапа mysql, который содержал в себе все базы.
Довольно долго сканировал интернет и кое что нашлось.
Ниже будет приведён код скрипта, который мне в этом очень помог.
Но, отработал он у меня корректно только на linux, на freebsd что-то у него не получалось.
Cкрипт предназначен для разрезания MySQL-дампа с несколькими базами на отдельные базы. Файлы именуются по принципу:
название_базы.номер_в_общем_дампе.sql
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 4173
С logrotate не сложилось, там костыль на костыле и костылём погоняет.
В общем используем встроенную функцию mongodb для ротации логов и немного ей помогаем.
Создаём скриптик, а потом этот скриптик добавляем в крон.
# vim /root/scripts/mongorotate.sh
- Информация о материале
- Автор: dimetrius
- Категория: Базы данных
- Просмотров: 2590
При изменении innodb_log_file_size придется остановить сервер и удалить (или переименовать) старый лог файл, для чего могут потребоваться рутовые права. Если же старый файл не удалять, mysql просто откажется стартовать.
Моя выжимка из конфига (не самая сильная dev-машина, 3G RAM, Dual CPU E2140 @ 1.60GHz)
[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.log
long_query_time = 1
log-queries-not-using-indexes
default-storage-engine = InnoDB
collation_server=utf8_general_ci
character_set_server=utf8