猿问

萌新求教!含有特殊字符\v的mysql密码为什么会报错感激不尽

mysql>ALTERUSER`db_example`@`%`IDENTIFIEDBY'qeW0zdszb\vZjt4o';
ERROR1819(HY000):Yourpassworddoesnotsatisfythecurrentpolicyrequirements
mysql>ALTERUSER`db_example`@`%`IDENTIFIEDBY'qeW0zdszb\tZjt4o';
QueryOK,0rowsaffected(0.00sec)
MySQL版本:5.7两个密码qeW0zdszb\vZjt4o和qeW0zdszb\tZjt4o区别只有\v或\t
为什么含有\v的密码会报错?在MySQL中设置密码有哪些限制?
当用Spring连接数据库时,如果密码有\字符,配置中还得转义。
慕桂英4014372
浏览 558回答 2
2回答

慕哥6287543

MySQL本身支持一些转义字符EscapeSequenceCharacterRepresentedbySequence\0AnASCIINUL(X'00')character\'Asinglequote(')character\"Adoublequote(")character\bAbackspacecharacter\nAnewline(linefeed)character\rAcarriagereturncharacter\tAtabcharacter\ZASCII26(Control+Z);seenotefollowingthetable\\Abackslash(\)character\%A%character;seenotefollowingthetable\_A_character;seenotefollowingthetable当然默认开启的好,可以自己在不需要转义的程序里面做特殊处理。但是如果你想关闭可以SETsql_mode='NO_BACKSLASH_ESCAPES';关闭转义字符

幕布斯6054654

\t是制表符,我印象中好像\v不是什么特殊字符吧。我猜测:这里应该是mysql在设置密码的时候对密码串解义了,导致\v没有对应的解义而报错了?比如你换成\\v看看会不会报错。以及如果不报错的话,你输入密码是要输两个\还是一个,如果是一个,说明设置密码的时候确实经过解义了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答