为什么弹簧靴可以';无法连接到本地mysql服务器(拒绝用户';root';@';本地主机'的访问;(使用密码:是))

为什么弹簧靴可以';无法连接到本地mysql服务器(拒绝用户';root';@';本地主机'的访问;(使用密码:是)),mysql,spring-boot,spring-data-jpa,Mysql,Spring Boot,Spring Data Jpa,我遇到了一个关于Spring boot的非常奇怪的现象,并使用mysql存储数据,今天在我的私人计算机上我克隆了我的开发项目。在eclipse中运行entry main类时,会引发异常 2015-11-15 18:28:08.912 ERROR 9183 --- [ restartedMain] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool. java.sql.SQ

我遇到了一个关于Spring boot的非常奇怪的现象,并使用mysql存储数据,今天在我的私人计算机上我克隆了我的开发项目。在eclipse中运行entry main类时,会引发异常

2015-11-15 18:28:08.912 ERROR 9183 --- [  restartedMain] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1665) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1207) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2249) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2280) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2079) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794) ~[mysql-connector-java-5.1.36.jar:5.1.36]
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44) ~[mysql-connector-java-5.1.36.jar:5.1.36]
但我可以在终端直接登录mysql,如下所示:

mysql -hlocalhost -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.6.27-0ubuntu0.14.04.1 (Ubuntu)
我甚至在同一个项目中编写了一个示例java代码来测试与本地mysql服务器的连接

public static void main(String[] args) throws SQLException {
    String url = "jdbc:mysql://localhost:3306/foo?useUnicode=true&characterEncoding=utf8";
    String user = "root";
    String password = "123456";
    Connection connection = DriverManager.getConnection(url , user  , password);
    System.out.println(connection);
    Statement stat = connection.createStatement();
    ResultSet rs = stat.executeQuery("select version()");
    rs.next();
    System.out.println(rs.getString(1));
}
运行它并获得正常输出:

com.mysql.jdbc.JDBC4Connection@48cf768c
5.6.27-0ubuntu0.14.04.1

那么为什么SpringBoot不能连接到本地mysql服务器,但其他方法可以呢

看起来不错-你有没有检查密码中的经典尾随空格?谢谢!您是对的。确实tail.BTW上有一个空格,您知道在主应用程序类中输出密码的更好方法吗。现在我的方法是:@Value(${spring.datasource.password}”)私有字符串密码;在addInterceptors()中添加以下语句:System.out.println(“password:+password”);System.out.println(“密码==123456:”+(“123456.equals(密码))@Mathiadpunk就是这样!只有在我的情况下,它是用户名后的尾随空格。哦!你找到解决办法了吗?
com.mysql.jdbc.JDBC4Connection@48cf768c
5.6.27-0ubuntu0.14.04.1