敲完./ResetAdminPwd.sh 之后报错
./ResetAdminPwd.sh
Link database is abnormal!
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:927)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1709)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1252)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2483)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.h3c.MysqlExec.getConnectionByJDBC(MysqlExec.java:42)
at com.h3c.MysqlExec.updateDb(MysqlExec.java:70)
at com.h3c.CASAdminTool.main(CASAdminTool.java:15)
Exception in thread "main" java.lang.NullPointerException
at com.h3c.MysqlExec.updateDb(MysqlExec.java:74)
at com.h3c.CASAdminTool.main(CASAdminTool.java:15)
这个错误信息很明确:密码恢复脚本在尝试连接数据库时,因为没有提供密码而被拒绝了。
Access denied for user 'root'@'localhost' (using password: NO) 这句话的关键是最后括号里的 using password: NO——意思是脚本在连接时根本没带密码去验证,而不是密码输错了。
UIS管理平台的管理员密码、网络配置等关键信息都存储在后台的MySQL数据库中。你运行的 ./ResetAdminPwd.sh 脚本,本质上是先连接数据库,然后去修改里面存的管理员密码记录。
正常情况下,脚本应该能自动读取到数据库的root密码来完成连接。现在报这个错,通常有几种可能:
脚本运行时找不到数据库密码配置文件——UIS的数据库密码通常存在某个特定配置文件里(比如 /etc/h3c/ 或脚本同目录下的 .conf 或 .properties 文件),脚本运行时找不到或读不了这个文件,就只能尝试无密码连接,结果被拒绝。
运行脚本的用户权限不够——如果当前登录用户对密码配置文件没有读取权限,脚本同样无法获取密码。
数据库密码在之前的运维中被手动改过,但配置文件没有同步更新,导致脚本读到的密码是错的(不过从日志 using password: NO 来看,更像是根本就没读到密码)。
请按顺序尝试以下方法:
第一步:检查并确认配置文件
db_password=xxxxx
mysql_password=xxxxx
第二步:确认当前用户权限
有些版本的脚本支持直接带密码参数运行,你可以试试:
从错误日志中的 java.sql.SQLException 可以看出脚本是用Java写的,调用了JDBC连接MySQL。如果你用的是较新版本的操作系统(如Ubuntu 22.04),而UIS或CAS的版本较老,可能存在JDBC驱动与MySQL版本的兼容性问题。这种情况建议联系H3C技术支持确认版本匹配关系。
不是mysql啊
不是mysql啊
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明