You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL命令行输出\\.而非\.的原因及解决方案

解决MySQL通过文件执行SQL时反斜杠转义问题

问题核心

在MySQL交互客户端中,输入的\\会被客户端自动转义为单个\,因此select '\\.';能输出\.;但通过文件重定向执行时,默认情况下MySQL客户端不会处理反斜杠转义,直接将文件中的\\传给服务端,最终输出\\.。

两种解决方案

方案1:修改执行命令,启用客户端反斜杠转义

在执行mysql命令时添加--escape-backslashes参数,让非交互模式下的客户端和交互模式一样处理反斜杠:

mysql -h mysqlhost -u admin -p -N --escape-backslashes mydatabase < reverse.sql

此时SQL文件reverse.sql保持原有内容即可:

select '\\.';

方案2:调整SQL文件中的反斜杠数量

如果不想修改命令参数,可直接在SQL文件中使用4个反斜杠,让MySQL服务端解析为单个反斜杠:
修改reverse.sql内容为:

select '\\\\.';

执行命令保持不变:

mysql -h mysqlhost -u admin -p -N mydatabase < reverse.sql

原理:MySQL服务端默认会将连续两个反斜杠解析为一个,因此4个反斜杠最终会被转换为单个反斜杠,结合句点输出\.。

内容的提问来源于stack exchange,提问作者Umut TEKİN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:40:10