XAMPP Shell执行mysqlcheck优化命令报错 求可用MySQL表优化查询命令
问题原因
你执行失败的核心原因是mysqlcheck是操作系统层面的可执行命令,不能直接在MySQL Shell(SQL交互环境)内部运行,需要在Windows cmd/macOS/Linux终端下执行。
可用替代方案
方案1:操作系统终端执行mysqlcheck(和原需求匹配,推荐)
先退出当前MySQL Shell,打开XAMPP自带的终端或者系统默认终端,进入XAMPP的mysql/bin目录后执行命令即可,可通过参数输出详细报错:
# 优化所有数据库,输出完整执行信息和报错 mysqlcheck -o --all-databases -u <你的MySQL用户名> -p -v # 优化指定数据库,输出完整执行信息和报错 mysqlcheck -o <数据库名> -u <你的MySQL用户名> -p -v
参数说明:
-u指定MySQL登录用户名,XAMPP默认用户为root-p执行后会提示输入密码,XAMPP默认root无密码直接回车即可-v开启verbose模式,会输出所有执行过程和报错详情
方案2:MySQL Shell内部直接执行SQL命令
如果不想退出MySQL Shell,可以直接用OPTIMIZE TABLE语法实现同等优化需求,执行后会直接返回执行状态和报错信息:
-- 优化单张表 OPTIMIZE TABLE <表名>; -- 优化同一个数据库下的多张表 OPTIMIZE TABLE <表1名>, <表2名>, <表3名>;
如果需要批量优化某个库的所有表,可以用以下语句生成批量优化命令,复制生成的结果执行即可:
SELECT CONCAT('OPTIMIZE TABLE ', table_name, ';') FROM information_schema.tables WHERE table_schema = '<你的数据库名>';
内容的提问来源于stack exchange,提问作者hyunjae
相关产品推荐
相关产品推荐

