mysqlcheck não suporta múltiplos comandos contraditórios

2

Alguma ideia de por que estou vendo esta mensagem de erro? Este script funciona bem em uma versão um pouco mais antiga do MySQL sendo executada em um servidor diferente com uma configuração similar.

:: 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

Error: C:...\MySQL Server 5.5\bin\mysqlcheck doesn't support multiple contradicting commands

    
por Chris 14.07.2011 / 18:19

2 respostas

3

É provável que pelo menos um dos seus switches seja mutuamente exclusivo para outro em uma ou mais chamadas para mysqlcheck .

Veja cada um deles ( -v , -1, -A , -c , -r , -m , -a , -o ), descubra cada um deles e descubra como dividi-los em chamadas separadas para mysqlcheck , para que não sejam t contradizendo um ao outro.

Como exemplo hipotético, -v combinado com -r pode significar "acertar o relógio e acertar o relógio" - uma instrução que poderia ser interpretada como contraditória. Se você quiser fazer ambas as operações, você deve fazê-las em duas chamadas sequenciais para mysqlcheck , na ordem em que você deseja que elas sejam executadas.

    
por 14.07.2011 / 18:24
3

Como dito anteriormente, os switches que você usa são mutuamente exclusivos: assim você quer se livrar de uma opção. Tente isto:

mysqlcheck -u %MYSQL_USER% -p%MYSQL_PW% --auto-repair --optimize --all-databases

Se não me engano, você recebe o mesmo com apenas um comando.

    
por 14.10.2012 / 14:45