MySQLSyntaxErrorException:用户''@'localhost'拒绝访问数据库'demo'
Posted
技术标签:
【中文标题】MySQLSyntaxErrorException:用户\'\'@\'localhost\'拒绝访问数据库\'demo\'【英文标题】:MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'demo'MySQLSyntaxErrorException:用户''@'localhost'拒绝访问数据库'demo' 【发布时间】:2015-05-28 04:39:29 【问题描述】:我正在尝试使用我的休眠应用程序连接到数据库。 但是除了Test之外,我无法连接其他数据库。
这很奇怪,因为如果我要创建任何数据库,除了在 phpMyAdmin 中预定义的测试数据库之外,它不允许我通过 hibernate 访问它。
我尝试了很多方法,但都没有成功。
1.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;
2.
mysql -u root -p
3.
mysqladmin -u root password 'root password goes here'
-
我已经重新安装了我的 wamp 服务器。
这是我的 hibernate.cfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/demo</property>
<property name="username">root</property>
<property name="password" />
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hbm2ddl.auto">update</property>
<!-- disabled 2nd level catche
<property name="catche.provider_class">org.hibernate.catche.NoCatcheProvider</property>-->
<!-- enabled 2nd level catche -->
<property name="catche.use_second_level_catche">true</property>
<property name="catche.use_query_catche">true</property>
<property name="catche.provider_class">org.hibernate.catche.EhCatcheProvider</property>
<mapping class="org.hibernet.src.userDetails" ></mapping>
<mapping class="org.hibernet.src.Address" ></mapping>
<mapping class="org.hibernet.src.Vehicle" ></mapping>
</session-factory>
</hibernate-configuration>
如果这是一个语法问题,它不应该与测试数据库一起使用,但它应该与它一起使用。 我该怎么办?
【问题讨论】:
首先你可能不应该使用root,而是创建另一个用户..你试过GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
以便你可以使用root用户从任何地方连接吗?
IDENTIFIED BY 'root'
。所以密码也是root,然后在xml配置文件中使用<property name="username">root</property> <property name="password" >root</property>
是的,它允许我创建连接,因为我可以访问测试数据库所以我认为不需要密码
【参考方案1】:
我终于完成了新用户。 只需创建另一个用户并为其授予所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
【讨论】:
以上是关于MySQLSyntaxErrorException:用户''@'localhost'拒绝访问数据库'demo'的主要内容,如果未能解决你的问题,请参考以下文章
executeUpdate() 抛出 MySQLSyntaxErrorException
MySQLSyntaxErrorException:用户访问被拒绝
错误:MySQLSyntaxErrorException - 拒绝用户选择命令
MySQLSyntaxErrorException:未知数据库 - JDBC - Java EE
如何解决 JDBC PreparedStatement 中的 MySQLSyntaxErrorException [重复]