故障分析 | 密码使用特殊字符

本文探讨了在MySQL中创建用户时遇到的特殊字符问题,特别是当密码包含符号$时,登录行为异常的现象。通过对比正常用户与问题用户的密码存储方式,分析了问题原因,并提供了如何避免此类问题的有效建议。

作者:王祥

爱可生 DBA 团队成员,主要负责 MySQL 故障处理和性能优化。对技术执着,为客户负责。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


背景

最近在使用脚本新建了一批应用用户,发现一个奇怪的问题,有部分用户存下以下问题:应用使用该密码能正常访问,但使用 mysql 客户端登录手动输入密码无法登录。经过与正常用户对比发现存在登录异常的用户使用了特殊字符"$"。

问题复现

在测试环境使用脚本生成一批用户

#新建用户脚本简化后如下
#!/bin/bash
pw="abc$2UY"
mysql --login-path=root -e"create user app@'%' identified by '$pw'"
mysql --login-path=root -e"grant insert,update,delete,select on *.* to app@'%'"

#测试使用mysql客户端登录
[root@node3 ~]# mysql -h127.0.0.1 -uapp -p  #手动输入密码无法登录
Enter password:
ERROR 1045 (28000): Access denied for user 'app'@'127.0.0.1' (using password: YES)

[root@node3 ~]# mysql -h127.0.0.1 -uapp -p'abc$2UY' #使用单引号无法登录
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值