Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MySQL:用户的访问被拒绝。。。使用密码:是_Java_Mysql - Fatal编程技术网

Java MySQL:用户的访问被拒绝。。。使用密码:是

Java MySQL:用户的访问被拒绝。。。使用密码:是,java,mysql,Java,Mysql,由于最近重新格式化了硬盘,我的本地Java/Tomcat/MySQL堆栈无法正常工作 这是一个干净的MySQL安装,运行在MacOSX10.7.3(Lion)上 我遇到的错误是,当我的tomcat实例启动并尝试连接时: SEVERE: Servlet /concorde-web threw load() exception java.sql.SQLException: Access denied for user 'concorde'@'localhost' (using password: Y

由于最近重新格式化了硬盘,我的本地Java/Tomcat/MySQL堆栈无法正常工作

这是一个干净的MySQL安装,运行在MacOSX10.7.3(Lion)上

我遇到的错误是,当我的tomcat实例启动并尝试连接时:

SEVERE: Servlet /concorde-web threw load() exception
java.sql.SQLException: Access denied for user 'concorde'@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
采取的步骤:

  • 我已经设置了
    concorde@localhost
    的密码(如所述)和
  • 我可以使用相同的凭据从控制台进行连接。所有以下工作:

    mysql -u concorde -h localhost -p
    mysql -u concorde -p
    mysql -u concorde -h localhost -D concorde -p
    // the app is trying to connect as user concorde to db concorde
    
  • 我已确保concorde用户拥有权限-不仅来自localhost,还来自任何地方:

    GRANT ALL ON concorde.* TO 'concorde'@'%';
    FLUSH PRIVELEDGES;
    
我错过了什么

除此之外,我还可以采取什么措施来了解这里发生了什么?我可以查一下日志吗

编辑 根据要求,这是我正在使用的代码

然而,这段代码在重新格式化硬盘之前运行良好,所以我怀疑问题是否出在它里面

该应用程序在spring容器中运行,而在spring启动期间,一切都会出现问题

以下是相关的bean声明:

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="persistenceUnitName" value="spring-jpa" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <property name="generateDdl" value="false" />
            <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
        </bean>
    </property>
</bean>


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url"
        value="jdbc:mysql://${database.host}:${database.port}/${database.name}" />
    <property name="username" value="${database.username}" />
    <property name="password" value="${database.password}" />
    <property name="initialSize" value="5" />
    <property name="maxActive" value="50" />
</bean>
此外,以下是权限查询的(节略)输出:

mysql> select * from information_schema.user_privileges;

| 'concorde'@'localhost'                 | def           | USAGE                   | NO           |
| ''@'localhost'                         | def           | USAGE                   | NO           |
| ''@'Marty-Pitts-MacBook-Pro.local'     | def           | USAGE                   | NO           |
| 'concorde'@'%'                         | def           | USAGE                   | NO           |
+----------------------------------------+---------------+-------------------------+--------------+
注意-这是通过使用
root登录运行的

我怀疑那里显示的
NO
中有我的用户的线索,但我不确定如何解释这些数据

mysql> select * from information_schema.SCHEMA_PRIVILEGES;
+------------------------+---------------+--------------+-------------------------+--------------+
| GRANTEE                | TABLE_CATALOG | TABLE_SCHEMA | PRIVILEGE_TYPE          | IS_GRANTABLE |
+------------------------+---------------+--------------+-------------------------+--------------+
| 'concorde'@'localhost' | def           | concorde     | SELECT                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | INSERT                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | UPDATE                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | DELETE                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | DROP                    | YES          |
| 'concorde'@'localhost' | def           | concorde     | REFERENCES              | YES          |
| 'concorde'@'localhost' | def           | concorde     | INDEX                   | YES          |
| 'concorde'@'localhost' | def           | concorde     | ALTER                   | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE TEMPORARY TABLES | YES          |
| 'concorde'@'localhost' | def           | concorde     | LOCK TABLES             | YES          |
| 'concorde'@'localhost' | def           | concorde     | EXECUTE                 | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE VIEW             | YES          |
| 'concorde'@'localhost' | def           | concorde     | SHOW VIEW               | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE ROUTINE          | YES          |
| 'concorde'@'localhost' | def           | concorde     | ALTER ROUTINE           | YES          |
| 'concorde'@'localhost' | def           | concorde     | EVENT                   | YES          |
| 'concorde'@'localhost' | def           | concorde     | TRIGGER                 | YES          |
| 'concorde'@'%'         | def           | concorde     | SELECT                  | NO           |
| 'concorde'@'%'         | def           | concorde     | INSERT                  | NO           |
| 'concorde'@'%'         | def           | concorde     | UPDATE                  | NO           |
| 'concorde'@'%'         | def           | concorde     | DELETE                  | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE                  | NO           |
| 'concorde'@'%'         | def           | concorde     | DROP                    | NO           |
| 'concorde'@'%'         | def           | concorde     | REFERENCES              | NO           |
| 'concorde'@'%'         | def           | concorde     | INDEX                   | NO           |
| 'concorde'@'%'         | def           | concorde     | ALTER                   | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE TEMPORARY TABLES | NO           |
| 'concorde'@'%'         | def           | concorde     | LOCK TABLES             | NO           |
| 'concorde'@'%'         | def           | concorde     | EXECUTE                 | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE VIEW             | NO           |
| 'concorde'@'%'         | def           | concorde     | SHOW VIEW               | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE ROUTINE          | NO           |
| 'concorde'@'%'         | def           | concorde     | ALTER ROUTINE           | NO           |
| 'concorde'@'%'         | def           | concorde     | EVENT                   | NO           |
| 'concorde'@'%'         | def           | concorde     | TRIGGER                 | NO           |

由于您似乎可以使用来自命令行的预期凭据登录,因此我怀疑您的属性是否被正确地替换到了“dataSource”bean中

尝试暂时硬编码数据源bean的所有参数。
如果这样做有效,则不会设置您的属性。

令人尴尬的是,答案是密码是从外部文件读入的

其他人签出了该文件,提交该文件时,密码中附加了一些尾随的空格字符。当spring读取属性文件时,似乎没有修剪这些属性(我想这是合理的)


然而,这就是问题的根源。一个真正错误的密码。

我的MySQL错误日志在
MySQL/data/MySQL\u error.log
中。查看它(文件名可能有点不同),您可能会在那里找到更多详细信息(尽管我对此表示怀疑…)。你能提供一段你试图连接的代码吗?你的jdbc url格式正确吗?我最好的猜测是你的参数在java代码中被颠倒了,请发布代码。你能用这个命令连接吗
mysql-u concorde-h 127.0.0.7-p
我对您所说的内容知之甚少,但我注意到他们正在使用一个不同的类(org.springframework.jdbc.datasource.drivermanagedatasource)作为数据源。抱歉,如果这不相关的话,我只是想了解一下这个问题并注意到它。在阅读这篇文章之前,我花了一天时间来解决这个问题。我在那里断线了。两台计算机之间的同步导致了某种原因。我也有一个类似的错误。在阅读了这个答案之后,我几乎没有注意到,由于服务器的特殊字体,在配置中,密码是用“1”而不是“l”写的
mysql> select * from information_schema.SCHEMA_PRIVILEGES;
+------------------------+---------------+--------------+-------------------------+--------------+
| GRANTEE                | TABLE_CATALOG | TABLE_SCHEMA | PRIVILEGE_TYPE          | IS_GRANTABLE |
+------------------------+---------------+--------------+-------------------------+--------------+
| 'concorde'@'localhost' | def           | concorde     | SELECT                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | INSERT                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | UPDATE                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | DELETE                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE                  | YES          |
| 'concorde'@'localhost' | def           | concorde     | DROP                    | YES          |
| 'concorde'@'localhost' | def           | concorde     | REFERENCES              | YES          |
| 'concorde'@'localhost' | def           | concorde     | INDEX                   | YES          |
| 'concorde'@'localhost' | def           | concorde     | ALTER                   | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE TEMPORARY TABLES | YES          |
| 'concorde'@'localhost' | def           | concorde     | LOCK TABLES             | YES          |
| 'concorde'@'localhost' | def           | concorde     | EXECUTE                 | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE VIEW             | YES          |
| 'concorde'@'localhost' | def           | concorde     | SHOW VIEW               | YES          |
| 'concorde'@'localhost' | def           | concorde     | CREATE ROUTINE          | YES          |
| 'concorde'@'localhost' | def           | concorde     | ALTER ROUTINE           | YES          |
| 'concorde'@'localhost' | def           | concorde     | EVENT                   | YES          |
| 'concorde'@'localhost' | def           | concorde     | TRIGGER                 | YES          |
| 'concorde'@'%'         | def           | concorde     | SELECT                  | NO           |
| 'concorde'@'%'         | def           | concorde     | INSERT                  | NO           |
| 'concorde'@'%'         | def           | concorde     | UPDATE                  | NO           |
| 'concorde'@'%'         | def           | concorde     | DELETE                  | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE                  | NO           |
| 'concorde'@'%'         | def           | concorde     | DROP                    | NO           |
| 'concorde'@'%'         | def           | concorde     | REFERENCES              | NO           |
| 'concorde'@'%'         | def           | concorde     | INDEX                   | NO           |
| 'concorde'@'%'         | def           | concorde     | ALTER                   | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE TEMPORARY TABLES | NO           |
| 'concorde'@'%'         | def           | concorde     | LOCK TABLES             | NO           |
| 'concorde'@'%'         | def           | concorde     | EXECUTE                 | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE VIEW             | NO           |
| 'concorde'@'%'         | def           | concorde     | SHOW VIEW               | NO           |
| 'concorde'@'%'         | def           | concorde     | CREATE ROUTINE          | NO           |
| 'concorde'@'%'         | def           | concorde     | ALTER ROUTINE           | NO           |
| 'concorde'@'%'         | def           | concorde     | EVENT                   | NO           |
| 'concorde'@'%'         | def           | concorde     | TRIGGER                 | NO           |