偶认为自己输入的密码并没有包含感叹号,但是mysql提示偶有一个非法字符。偶想了想,可能是mysql在密码中使用了感叹号作为一个特殊字符,所以偶尝试去掉了感叹号,并重新设置了密码。
然而,仍然没有解决问题。偶进一步搜索了一下关于mysql密码的规则,发现感叹号确实是作为密码中的一个保留字符,用于强化密码的复杂性,代表着一个特殊字符。
mysql>SET PASSWORD = PASSWORD('MyPassword!2'); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' at line 1
上面的错误说明感叹号是mysql中的保留字符,所以在设置密码时需要对感叹号进行转义。
mysql>SET PASSWORD = PASSWORD('MyPassword\!2'); Query OK, 0 rows affected (0.01 sec)
这样就成功设置了密码并且没有出现错误。所以,如果遇到了mysql密码中出现感叹号的问题,要记得对感叹号进行转义。