连接问题
Access denied for user ‘root’@‘localhost’ (using password: YES)
第一种情况
问题描述
环境:IDEA 2021.1 windows11 mysql8.0
已知条件:
1.已正常安装数据库
2.无法通过CMD输入mysql -u root -p 密码进入数据库
3.无法通过Navicat进入
4.修改my.ini依然无法进入
提示:Access denied for user 'root'@'localhost' (using password: YES) 或者 Access denied for user 'root'@'localhost' (using password: NO)
解决方案
【解决Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)的方法】
--https://www.jb51.net/article/250474.html
以下命令行代码均在管理员权限下运行:
第一步:关闭Mysql服务
net stop mysql
第二步:跳过Mysql密码验证
注意:mysql8.0无法直接在my.ini中添加–skip-grant-tables来进行跳过密码验证,需要使用命令行的方式
mysqld -console --skip-grant-tables --shared-memory
第三步:无密码方式进入Mysql
在上述步骤之后,再打开一个管理员模式运行的cmd.exe
不需要通过net start mysql
打开mysql服务
然后输入
mysql -u root -p
直接回车,就可以进入mysql界面
第四步:将登陆密码设置为空
use mysql; (使用mysql数据表)
update user set authentication_string='' where user='root';(将密码置为空)
quit; (然后退出Mysql)
第五步:更改自己的登陆密码
1.关闭前两个cmd窗口(一定要关闭!);
2.在第三个窗口中输入代码;
然后输入
cd D:\mysql-8.0.19-winx64\bin (此处输入自己电脑上的安装目录)
mysql -u root -p
(此处会显示输入密码,直接回车就好了,第四步我们已经将他置为空了)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';(By 后面跟的字符串就是你想要更新的密码)
最后一步:验证密码是否修改成功
quit(退出mysql)
mysql -u root -p
(输入新密码,再次登录)
记录时间:2022-7-27-17:13 --好像是老问题了,之前一直没有改正过来,正好在复习的时候将其改正,一定要跟着步骤慢慢来。
第二种情况
问题描述
环境:IDEA 2021.1 windows11 mysql8.0
已知条件:
1.已确定正常安装对应的驱动
2.在windows的CMD窗口中能正常通过 [mysql -u root -p 密码] 进入数据库
3.可以在IDEA的终端中正常输入账号密码和数据库进入
4.远程访问或者idea登录时出现此错误。
5.使用IDEA测试JDBC连接时,发现无法连接JDBC
6.Access denied for user 'root'@'localhost' (using password: YES)
代码:
public static void main(String[] args) {
try {
Driver driver=new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);
String url="jdbc:mysql://localhost:3306/sqlstudy?useUnicode=true&characterEncoding=UTF-8";
String user="root";
String password="li1473606768";
Connection connection=DriverManager.getConnection(url,user,password);
System.out.println(connection);
} catch (SQLException e) {
System.out.println("检测到异常");
e.printStackTrace();
}
}
解决方案
原因:
服务中有一个mysqlzt的服务器将端口占用了,无法进行远程访问
参考文章:
CSDN 文章:https://blog.csdn.net/evan_one/article/details/113941416
发生错误的服务:
The server time zone value ‘xxxxxxxxxx’ is unrecognized or represents more than one time zone.
问题描述
环境:IDEA 2021.1 windows11 mysql8.0
1.可以连接数据库
2.通过JAVA JDBC连接时,出现以上问题
解决方案
问题提示时区未配置正确
在进行JDBC连接时,8.0版本以上就要求绑定时区了,最好将charactEncoding=UTF8加上...
String url="jdbc:mysql://localhost:3306/sqlstudy";
更改:
String url="jdbc:mysql://localhost:3306/sqlstudy?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT";
//可以使GMT也可以是UTC