![mysqlcheck 不支持多个相互矛盾的命令](https://linux22.com/image/555422/mysqlcheck%20%E4%B8%8D%E6%94%AF%E6%8C%81%E5%A4%9A%E4%B8%AA%E7%9B%B8%E4%BA%92%E7%9F%9B%E7%9B%BE%E7%9A%84%E5%91%BD%E4%BB%A4.png)
知道我为什么会看到这个错误信息吗?这个脚本在具有类似配置的不同服务器上运行的稍旧版本的 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 不支持多个相互矛盾的命令
答案1
在一次或多次调用中,至少有一个开关可能与另一个开关互斥mysqlcheck
。
逐一查看(-v
,,,,,,,),弄清楚它们各自的作用,并弄清楚如何将它们分解为对的单独调用,这样它们-1,
-A
就不会互相矛盾。-c
-r
-m
-a
-o
mysqlcheck
举个假设的例子,-v
与 结合-r
可能意味着“将时钟调回并调快”——这条指令可能会被解释为相互矛盾。如果您想执行这两项操作,则必须按照mysqlcheck
您要求的运行顺序,连续两次调用 来执行它们。
答案2
如前所述,您使用的开关是互斥的:因此您想要删除一个选项。试试这个:
mysqlcheck -u %MYSQL_USER% -p%MYSQL_PW% --auto-repair --optimize --all-databases
如果我没记错的话,只需一个命令就可以获得相同的效果。