2

PyCharm を介してローカル データベース (mysql) への接続をセットアップしようとしています。私はmacbook proで作業しています。

このビデオを使用しています。

しかし、接続をテストしようとすると、次のエラーが発生します。

    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)

これが私の設定のスクリーンショットです:

ここに画像の説明を入力

何か案は?

4

2 に答える 2

4

多分あなたはスキーマへのアクセス許可を持っていませんか? これを試して:

 mysql -u root -p -h 127.0.0.1 -D lp

更新 データベースにはアクセスできますが、スキーマにはアクセスできません。

 GRANT ALL ON `lp`.* TO 'root'@'localhost';
于 2013-09-23T19:57:39.523 に答える