Как проверить все таблицы в базе данных за один раз?
Вместо того, чтобы вводить запрос check table ''tablename'';
для всех таблиц по одной.
Есть ли такая простая команда check all
или что-то в этом роде?
из командной строки вы можете использовать:
mysqlcheck -A --auto-repair
Команда такая:
mysqlcheck -u root -p --auto-repair --check --all-databases
Вы должны указать пароль, когда вас спросят,
или вы можете запустить это, но это не рекомендуется, потому что пароль написан открытым текстом:
mysqlcheck -u root --password=THEPASSWORD --auto-repair --check --all-databases
Используйте следующий запрос, чтобы распечатать
REPAIR
статистику SQL для всех таблиц в базе данных:После этого скопируйте все запросы и выполните его
mydatabase
.Примечание: замените
mydatabase
желаемым именем БДисточник
Не нужно вводить пароль, просто используйте любую из этих команд (не требует пояснений):
источник
Следующая команда работала для меня, используя командную строку (как администратор) в Windows:
Запустите mysqlcheck от имени пользователя root, запросите пароль, проверьте все базы данных и автоматически восстановите все поврежденные таблицы.
источник
Для этого нет команды по умолчанию, но вы можете создать процедуру для выполнения этой работы. Он будет перебирать строки
information_schema
и вызыватьREPAIR TABLE 'tablename';
каждую строку.CHECK TABLE
пока не поддерживается для подготовленных операторов. Вот пример (замените MYDATABASE именем своей базы данных):источник
Мне нравится это для простой проверки из оболочки:
источник
mysql -ss
для исключения имен столбцов из вывода - это позволит удалить ихNR != 1
из вашего кодадля хостов plesk один из них должен делать: (оба делают то же самое)
источник
Вам могут понадобиться имя пользователя и пароль:
Вам будет предложено ввести пароль.
Если вы хотите поставить cron, НО ваш пароль будет виден в виде обычного текста!
источник
Если поврежденные таблицы остаются после
пытаться
источник