gpt4 book ai didi

mysql - PyCharm - 数据库连接。用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES)

转载 作者:行者123 更新时间:2023-11-29 01:13:38 25 4
gpt4 key购买 nike

我正在尝试通过 PyCharm 设置到本地数据库 (mysql) 的连接。我正在研究 macbook pro。

我正在使用这个 video .

但是,当我尝试测试连接时,出现了这个错误:

    Connection to Data Source failed
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4190)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4122)
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:2486)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304)
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:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
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)
in RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
at com.sun.proxy.$Proxy87.connect(Unknown Source)
in LocalDataSource.getConnection(LocalDataSource.java:158)

但是我通过终端连接到mysql没问题

mysql -u root --password=123

UPD

mysql -u root -p -h 127.0.0.1 -D lp
Access denied for user 'root'@'localhost' (using password: YES)

mysql -u root -p -h 127.0.0.1 lp
Access denied for user 'root'@'localhost' (using password: YES)

mysql -u root -p -h localhost lp
connected

UPD

mysql> select host, user, password != '' from mysql.user;
+-----------+------+----------------+
| host | user | password != '' |
+-----------+------+----------------+
| localhost | root | 1 |
| 127.0.0.1 | root | 1 |
| ::1 | root | 1 |
+-----------+------+----------------+
3 rows in set (0.00 sec)

mysql> select user(), current_user();
+----------------+----------------+
| user() | current_user() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)

这是我的设置截图:

enter image description here

有什么想法吗?

最佳答案

这些中的一些或两者应该可以解决您的问题:

查看select host, user, password, Select_priv from mysql.user;的结果。

如果 password 字段不是所有行都相同,则执行:

SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('123');
SET PASSWORD FOR 'root'@'::1' = PASSWORD('123');

如果 Select_priv 不是所有行的“Y”,则执行:

GRANT ALL ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'root'@'::1' WITH GRANT OPTION;

编辑

由于这些都不是真的,剩下的唯一选择是机器上运行着多个 MySQL 实例,一个正在接收通过套接字建立的连接,另一个正在接收通过 TCP 建立的连接。

关于mysql - PyCharm - 数据库连接。用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com