mysql客户端登陆提示"client option 'secure_auth' enabled"错误使用mysql workbench登陆mysql服务器时提示授权算法错误。 查阅资料发现,mysql密码使用有两个阶段,第一阶段是登陆时使用hash value进行验证,第二阶段用password()函数生成密码。 而第一阶段的验证hash value有两种,一种是pre-4.1版本,另一种是4.1版本的,前者是16字节的字符串,后者是41字节的字符串。 为了兼容,加入了old_password()函数和old_passwords变量,old_passwords为1时,old_password()函数和password()是一样的, 为了使DBA可以控制采用哪种验证方式,加入了secure_auth变量,mysql 5.6.5之前的版本默认为0,之后的默认为1。 相关的命令: mysql> SET @@session.old_passwords = 0; Query OK, 0 rows affected (0.00 sec) mysql> SELECT @@session.old_passwords, @@global.old_passwords; +-------------------------+------------------------+ | @@session.old_passwords | @@global.old_passwords | +-------------------------+------------------------+ | 0 | 1 | +-------------------------+------------------------+ 1 row in set (0.00 sec) mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpass'; Query OK, 0 rows affected (0.03 sec) mysql> SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('existingpass'); Query OK, 0 rows affected (0.00 sec) |
|
来自: caodaoquan > 《地法》