Инструменты пользователя

Инструменты сайта


faq.mysql

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

faq.mysql [2015/08/26 03:45] (текущий)
Строка 1: Строка 1:
 +====== FAQ.MySQL ======
 +**Ссылки**:​
 +  * [[http://​habrahabr.ru/​blogs/​mysql/​50064/​|Восстановление базы MySQL из бинарных логов]]
 +  * [[http://​phpclub.ru/​mysql/​doc/​binary-log.html|4.9.4. Бинарный журнал обновлений]] MySQL - справочное руководство на русском
 +  * [[http://​systems.takizo.com/​2009/​08/​23/​how-to-remove-mysql-binary-log/​|How to Remove MySQL Binary Log]]
  
 +====== MySQL Error ======
 +===== Can't open file: '​***.MYI'​. (errno: 145) =====
 +Error:
 +<​code>​
 +100125 ​ 9:33:30 /​usr/​local/​libexec/​mysqld:​ Can't open file: '​***.MYI'​. (errno: 145)
 +ERROR: 1016  Can't open file: '​***.MYI'​. (errno: 145)
 +</​code>​
 +  * Решение:​ запуск утилиты myisamchk
 +<​code>​
 +myisamchk --silent --force */*.MYI
 +</​code>​
 +
 +Also, run the following SQL query using phpMyAdmin:
 +<​code>​
 +REPAIR TABLE TableName
 +</​code>​
 +===== Client requested master to start replication from impossible position (server_errno=1236) =====
 +<​code>​
 +100125 ​ 9:49:57 Error reading packet from server: Client requested master to start replication from impossible position (server_errno=1236)
 +100125 ​ 9:49:57 Got fatal error 1236: '​Client requested master to start replication from impossible position'​ from master when reading data from binary log
 +100125 ​ 9:49:57 Slave I/O thread exiting, read up to log '​broadband-bin.3239',​ position 61452688
 +</​code>​
 +  * Решение:​
 +Остановить репликацию.
 +Сделать mysqldump на мастере,​ перед этим
 +SHOW MASTER STATUS\G;
 +Отметить у себя текущий File (binlog.000xx) и позицию Position.
 +Дамп залить на slave, там же сделать
 +CHANGE MASTER TO MASTER_LOG_FILE="​записанный binlog.000xx",​ MASTER_LOG_POS="​записанная позиция";​
 +Запустить репликацию
 +
 +====== Access denied for user '​debian-sys-maint'​@'​localhost'​ ======
 +Ошибка "​Access denied for user '​debian-sys-maint'​@'​localhost'"​ в [[Debian]] может появляться в нескольких случаях,​ например
 +  * при повреждении системной БД mysql и установки её заново
 +  * при переносе MySQL из другой операционной системы
 +Пользователь debian-sys-maint служит например для проверки таблиц при запуске сервера MySQL.
 +
 +Для исправления ошибки,​ запоминаем пароль(строка password) из файла debian.cnf. И через клиента mysql и выполняем две [[SQL]] команды<​file bash>
 +# nano /​etc/​mysql/​debian.cnf
 +# mysql -u root -p
 +mysql> GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO '​debian-sys-maint'​@'​localhost'​ IDENTIFIED BY '​пишем пароль из debian.cnf';​
 +mysql> GRANT ALL PRIVILEGES ON *.* TO '​debian-sys-maint'​@'​localhost'​ IDENTIFIED BY '​пишем пароль из debian.cnf'​ WITH GRANT OPTION; ​
 +</​file>​
 +
 +====== MySQL Logs ======
 +  * [[http://​dev.mysql.com/​doc/​refman/​5.1/​en/​server-logs.html|MySQL Server Logs]]
 +  * [[http://​habrahabr.ru/​sandbox/​22772/​|Журналы (logs) в MySQL]]
 +
 +Существует несколько видов журналов (logs) сервера MySQL:
 +  - бинарный лог (binary log)
 +  - лог ошибок (error log)
 +  - лог медленный запросов (slow query log)
 +  - лог запросов (general query log)
 +  - лог репликаций (relay log)
 +===== Подробные логи (general query log) MySQL =====
 +Для включения подробного логгирования запросов ко всем базам [[MySQL]], нужно в файле my.cnf в секции [mysqld] нужно прописать строки:<​file>​
 +general_log_file ​       = /​var/​log/​mysql/​mysql.log
 +general_log ​            = 1
 +</​file>​Создать и присвоить права этому файлу, перегрузить сервер MySQL:<​file>​
 +touch /​var/​log/​mysql/​mysql.log
 +chown mysql:mysql /​var/​log/​mysql/​mysql.log
 +/​etc/​init.d/​mysql restart
 +</​file>​
 +===== лог медленный запросов (slow query log) =====
 +Для обнаружения неэффективных запросов к базе, следует проверить лог медленных запросов. В случае оптимизации запросов этот лог поможет выяснить,​ что необходимо оптимизировать в первую очередь.
 +Настройки в my.cnf
 +
 +  * Местоположение лога: log_slow_queries = /​var/​log/​mysql/​mysql_slow.log
 +  * Со скольки секунд выполнения запрос считается медленным,​ минимальное значений — 1 секунда,​ по умолчанию 10 секунд:​ long_query_time = 10
 +  * Если надо логировать запросы,​ которые не используют индексы,​ надо добавить строку:​ log-queries-not-using-indexes
 +  * Если надо вести лог медленных команд,​ таких как OPTIMIZE TABLE, ANALYZE TABLE и ALTER TABLE: log-slow-admin-statements
загрузка...
faq.mysql.txt · Последние изменения: 2015/08/26 03:45 (внешнее изменение)