Пропустить навигацию.

mysql

Восстановление таблиц и баз данных mysql по ssh

Базам mysql свойственно крашиться, и если у вас один сайт, то восстанавливать таблицы баз данных на обычном хостинге вам возможно и не придётся или придётся делать раз в год. А если сайтов у вас десятки то уследить за тем какая таблица «подвисла» и проверять какой сайт не работает уже сложнее.

Для того чтобы проверить, восстановить и оптимизировать все базы данных mysql достаточно подключить по ssh и выполнить команду:
mysqlcheck -uUSER -pPASSWORD --auto-repair --check --optimize --all-databases

Кеширование запросов mysql, конфиг my.cnf, права доступа

Описание проблемы

Столкнулся с такой проблемой, что не работает кэширование mysql запросов.

В файле настроек /etc/my.cnf:
query_cache_size = 128M

Перезапускаю mysql, рефрешу страницу сайта, смотрю
mysql -uroot -ppassword
mysql> SHOW GLOBAL STATUS LIKE 'Qcache%';

и вижу одни нули. Значит кэш запросов mysql не работает.

Выполняю в mysql:
set @@global.query_cache_size=64*1024*1024;

Рефрешу страницу сайта и вижу что цифры поползли и кэш работает. В частности один тяжёлый запрос выполняется не 0.5 секунды, а 0.001 секунды.

ускоряем mysql, диагностика

mysqladmin processlist -uroot -ppassword

Показывает список активных процессов mysql. Ищем медленные, думаем в чём причина.

+-------+---------+-----------+---------+---------+------+----------------+------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |

Восстановление всех таблиц MYSQL по ssh — ssh mysql repair all tables

Полезная команда, которая поможет вам проверить и восстановить все таблицы в ваших базах данных mysql:

mysqlcheck -uroot -ppassword --auto-repair --check --optimize --all-databases

Подключаемся к серверу по ssh и вводим вышеуказанную команду, заменяя только root — на имя пользователя и password — на пароль пользователя.

Перезагрузка mysql

Под рутом работатет, быстро, сочни, вкусни!

/usr/local/etc/rc.d/mysql-server restart

Как перезапустить MySQL?

mysqladmin -uroot -ppassword shutdown

password — пароль рута, если его нет, то:

mysqladmin -uroot shutdown

А теперь запускаем:
/usr/local/bin/mysqld_safe

Перед остановкой поищите то что будете запускать с помощью locate, возможно что путь будет немного другой.

RSS-материал