Есть идеи, почему я вижу это сообщение об ошибке? Этот сценарий отлично работает с чуть более старой версией MySQL, работающей на другом сервере с аналогичной конфигурацией.
:: check/analyze/repair/optimize
@echo.
@echo Check Tables
%MYSQL_BIN%\mysqlcheck -u %MYSQL_USER% -p%MYSQL_PW% -v -1 -A -c
@echo.
@echo Repair Tables (medium)
%MYSQL_BIN%\mysqlcheck -u %MYSQL_USER% -p%MYSQL_PW% -v -1 -A -r -m
@echo.
@echo Analyze Tables
%MYSQL_BIN%\mysqlcheck -u %MYSQL_USER% -p%MYSQL_PW% -v -1 -A -a
@echo.
@echo Optimize Tables
%MYSQL_BIN%\mysqlcheck -u %MYSQL_USER% -p%MYSQL_PW% -v -1 -A -o
Ошибка: C: ... \ MySQL Server 5.5 \ bin \ mysqlcheck не поддерживает несколько противоречащих друг другу команд
По крайней мере, один из ваших переключателей, вероятно, теперь является взаимоисключающим по отношению к другому в одном или нескольких вызовах mysqlcheck
.
Посмотри на каждого из них (-v
, -1,
-A
, -c
, -r
, -m
, -a
, -o
), выясните, что делает каждый из них, и выясните, как разбить их на отдельные вызовы для mysqlcheck
, поэтому они не противоречат друг другу.
В качестве гипотетического примера: -v
в сочетании с -r
может означать «установить часы назад и установить часы вперед» - инструкция, которая, возможно, может интерпретироваться как противоречивая. Если вы хотите выполнить обе операции, вы должны выполнить их за два последовательных вызова mysqlcheck
в том порядке, в котором они должны запускаться.
Как было сказано ранее, используемые вами переключатели являются взаимоисключающими: поэтому вы хотите избавиться от одной опции. Попробуй это:
mysqlcheck -u %MYSQL_USER% -p%MYSQL_PW% --auto-repair --optimize --all-databases
Если не ошибаюсь, вы получите то же самое с помощью одной команды.