将MySQL 5.1升级到5.6后,尝试启动JBoss失败,出现以下异常:
java.sql.SQLException:
Server is running in --secure-auth mode, but 'user'@'localhost'
has a password in the old format; please change the password to the new format
如何解决这个问题?
已通过以下方式修复:
1) 更新"用户"用户的密码哈希值
UPDATE mysql.user set password = PASSWORD('my password text') where user= 'user';
2) 停止"mysql"服务器
/etc/init.d/mysql stop
3) 在/etc/my.cnf
文件上设置标志old_passwords=1
4)启动"mysql"服务器
/etc/init.d/mysql start
另请参阅文档:MySQL 密码哈希
首先,您需要找到my.cnf
文件,该文件应位于以下路径:
MySQL Server 5.6my.cnf
接下来找到显示old_passwords=0
的行并将其更改为 old_passwords=1
. 这将告诉MySQL使用兼容的密码哈希算法,一直追溯到4.0版本,该版本涵盖了您的用例。
现在,当您启动服务器时,密码问题应该会消失。 如果要将密码升级到最新版本,则可以对每个带有标志old_passwords=0
的用户使用SET PASSWORD
。
请记住,MySQL出于安全原因升级了其密码算法,因此您不应将设置old_passwords=1
视为长期解决方案。
有关更多信息,请参阅此处。
将 JBOSS 用户的密码重置为与之前相同的密码。然后,新版本的MySQL将使用新的强算法进行哈希处理,它将再次开始工作。
就我而言,这是通过关闭安全身份验证来解决的。
编辑/etc/my.cnf
在 [mysqld] 部分下添加:
old_passwords=1
secure-auth=false
在我的情况下,密码用户不正确。而不是喜欢dbname_userName
我只是给了userName
.重新检查用户名,密码等后,我更正了它们并成功运行。