已解决:java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
时间:2024-04-04 17:55:35 来源:网络cs 作者:利杜鹃 栏目:防关联工具 阅读:
今天在搞软测一个作业 要用Tomcat整个古董项目
因为用到的东西都很老
大概就是因为旧版本的MySQL服务器使用mysql_native_password 但是
在MySQL 8.0及以后的版本中,默认的身份验证插件是caching_sha2_password
这是发生错误的主要原因
解决办法
找到my.ini文件,找到mysqld部分,(如果没有就直接增加这句话)将auth_native_password
设置为1
,新版本的客户端仍然能够连接到MySQL服务器,因为新版本的客户端支持多种身份验证插件,包括mysql_native_password
。
不必担心会影响现有的 新版本的项目 因为
当客户端尝试连接到服务器时,客户端和服务器会协商使用哪种身份验证插件。如果客户端支持mysql_native_password
,那么即使服务器配置为使用caching_sha2_password
,客户端也可以回退到使用mysql_native_password
进行身份验证。
我知道 一定有人不知道my.ini在哪
因为新版本之后 这个配置文件被放到了神秘的地方
所以我们要进入mysql客户端
输入show variables like 'datadir';
找到了这个文件 那么my.ini就在旁边
重启MySQL服务:
在Linux系统上,你可以使用以下命令重启MySQL服务:在Windows系统上,你可以通过服务管理器重启MySQL服务,或者使用命令行:
sudo systemctl restart mysql
net stop mysql
net start mysql
如果你们跟我一样 启动完以后不能启动了
很好 那我们来下一步
维修MySQL
请把以下教程记录下来因为以后你们可能要做无数次 如果你们经常要搞数据库
首先来到刚才的Data文件 备份里面的所有资料
然后 使用管理员权限打开cmd
cd进入到你们安装的MySQL 的bin目录
操作如下
C:\Windows\System32>cd C:\Program Files\MySQL\MySQL Server 8.1\binC:\Program Files\MySQL\MySQL Server 8.1\bin>mysqld -remove MySQLService successfully removed.C:\Program Files\MySQL\MySQL Server 8.1\bin>mysqld --initialize-insecureC:\Program Files\MySQL\MySQL Server 8.1\bin>mysqld -installService successfully installed.C:\Program Files\MySQL\MySQL Server 8.1\bin>net start mysqlMySQL 服务正在启动 .MySQL 服务已经启动成功。C:\Program Files\MySQL\MySQL Server 8.1\bin>
好了 一切都好了
By the way 若是数据没了 那就在备份里面自己拷贝进去 要是还在 那就God love you
本文链接:https://www.kjpai.cn/news/2024-04-04/154094.html,文章来源:网络cs,作者:利杜鹃,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!