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

如何在MySQLsh连接时转义用户名中的@符号

解决MySQL Shell连接时用户名含@符号的URI转义问题

这个问题我之前折腾过好一会儿,URI格式里的@是用来切分「用户名密码」和「服务器地址」的,所以当用户名本身带@的时候,直接写肯定会让解析器搞混。给你几个靠谱的解决办法:

方法1:URL编码转义@符号

把用户名里的@替换成URL编码的%40,这样MySQL Shell的URI解析器就会把%40识别成用户名的一部分,而第二个@才是用来分隔服务器地址的标记。

示例命令:

mysqlsh mysql://userid%40salesdeparment:@123.45.678.123:3306/

如果你的密码里也有特殊字符(比如#、&这类),同样可以用对应的URL编码来转义,比如#换成%23,&换成%26。

方法2:用命令行参数指定连接信息

避开URI格式,直接用--user、--host、--port这些参数来指定,这样就不用纠结符号转义的问题了:

示例命令:

mysqlsh --user=userid@salesdeparment --host=123.45.678.123 --port=3306

如果需要指定密码,可以加上--password参数,运行后会交互式提示你输入密码(推荐这种方式,避免明文密码泄露);要是一定要写在命令里,就用--password=你的密码。

方法3:进入MySQL Shell交互模式后再连接

先启动MySQL Shell,然后用内置的\connect命令来连接,这个命令的解析逻辑会自动识别用户名里的@:

步骤:

  1. 运行mysqlsh进入交互界面
  2. 执行连接命令:
\connect userid@salesdeparment@123.45.678.123:3306

之后按提示输入密码就能正常连接了。

内容的提问来源于stack exchange,提问作者Dreamer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:40:39