MySQL Server安装异常与root密码修改失败:NetBeans连接报错‘Access denied for user 'root'@'localhost’的解决方案咨询
MySQL root密码重置&NetBeans连接失败解决方案
一、先彻底搞定root密码重置问题
你多次修改密码没效果,大概率是没走对流程,试试下面这套我亲测有效的重置步骤:
1. 先停掉MySQL服务
不同系统命令不一样:- Windows:打开管理员权限的命令提示符,执行
net stop mysql - Linux/macOS:终端执行
sudo systemctl stop mysql
- Windows:打开管理员权限的命令提示符,执行
2. 跳过权限检查启动MySQL
这一步能让你不用密码直接登录:- Windows:继续在管理员命令行执行
mysqld --skip-grant-tables --shared-memory,执行后这个窗口会卡住,别关闭它 - Linux/macOS:终端执行
sudo mysqld_safe --skip-grant-tables &
- Windows:继续在管理员命令行执行
3. 无密码登录MySQL
打开一个新的终端/命令提示符,直接输入mysql -u root,回车就能进入MySQL命令行,无需输入密码4. 重置root密码(注意MySQL版本)
先切换到系统库:use mysql;
然后根据你的MySQL版本选对应的命令:- MySQL 8.0及以上:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; - MySQL 5.x版本:
UPDATE user SET authentication_string=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost';
执行完后一定要刷新权限:FLUSH PRIVILEGES;
- MySQL 8.0及以上:
5. 重启MySQL服务并验证
关掉之前卡住的窗口,重新启动MySQL服务,然后用mysql -u root -p输入新密码登录,确认能正常进入MySQL命令行。
二、解决NetBeans连接失败的问题
密码搞定后,再处理NetBeans的连接问题,还要注意这几个细节:
- 确认MySQL服务处于启动状态:别光顾着改密码,忘了开启服务
- 检查连接参数:你的URL是
jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=CONVERT_TO_NULL,要确认:- 端口3306是MySQL默认端口,没改过的话没问题
- 后面的
mysql是要连接的数据库名,这个库默认存在,如果你要连自己的业务库,记得改成对应的名字
- 驱动版本匹配:你用的
com.mysql.cj.jdbc.Driver是MySQL 8.0+的驱动,如果你的MySQL是8.0以上版本,这个没问题;如果是5.x,要换成com.mysql.jdbc.Driver - 如果仍提示权限问题:可以检查root用户的认证插件,MySQL 8.0默认用
caching_sha2_password,部分旧客户端兼容不好,你可以改成mysql_native_password:
登录MySQL后执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';,然后执行FLUSH PRIVILEGES;,再去NetBeans尝试连接
最后验证
重置密码后,先在命令行用新密码登录确认没问题,再去NetBeans里配置连接,输入正确的root密码,应该就能成功建立连接了。
内容的提问来源于stack exchange,提问作者kdam
相关产品推荐
相关产品推荐

