java - 内部异常 : com. mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知错误 1049

标签 java mysql jpa jdbc eclipselink

这应该是一件容易的事。我正在使用 Eclipselink 在 JPA 中编写一个玩具应用程序,而不是使用 SSL。当实体管理器被调用时,我收到以下消息。我猜测我的 persistence.xml 文件中缺少一个参数,但异常不是很具体。

    [EL Info]: 2016-08-23 13:28:04.574--ServerSession(1586463432)--EclipseLink, version: Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd
    Tue Aug 23 13:28:05 EDT 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
...
    Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1049
    Error Code: 1049
@ em= Error message: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1049
    Error Code: 1049
    javax.persistence.PersistenceException: Exception [EclipseLink-4002]   (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:    Unknown error 1049
    Error Code: 1049
    at    org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:766)
    at  org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:204)
    at  org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:304)
    at  org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:336)
    at  org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:302)
    at com.ruleagents.hero.Main.main(Main.java:48)
    Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1049
    Error Code: 1049
    at  org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:331)
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:326)
    at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:138)
    at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
    at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.setOrDetectDatasource(DatabaseSessionImpl.java:204)
    at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:741)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:239)
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:685)
    ... 5 more
...
    Exception in thread "main" java.lang.NullPointerException
    at com.ruleagents.hero.Main.main(Main.java:62)

这是 persistence.xml

<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="CharacterManager"
    transaction-type="RESOURCE_LOCAL">
    <provider>
       org.eclipse.persistence.jpa.PersistenceProvider
    </provider>
    <class>com.ruleagents.hero.Hero</class>
    <class>com.ruleagents.hero.Logon</class>
    <!-- class>com.ruleagents.hero.Stat</class -->
    <properties>
        <property name="javax.persistence.jdbc.driver" value='com.mysql.jdbc.Driver' />
        <property name="javax.persistence.jdbc.url"
            value="jdbc:mysql://localhost:3306/CharacterManager" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
        <property name="eclipselink.ddl-generation.output-mode" value="database" />
        <property name="useSSL" value="false" />
        <property name="javax.persistence.jdbc.user" value="root"/>
    </properties>
</persistence-unit>
</persistence>

它的名字是这样的:

public static EntityManagerFactory getEMF (){
    try {
        if (emf == null){
            emf = Persistence.createEntityManagerFactory("CharacterManager");
...
EntityManager em = null;
try {
   em = getEMF().createEntityManager();
   em.getTransaction().begin();
   em.persist(user);

我需要更改什么才能使其连接到 MySql?谢谢!

最佳答案

MySQL错误代码1049似乎是未知数据库。

Error: 1049 SQLSTATE: 42000 (ER_BAD_DB_ERROR)

Message: Unknown database '%s'

https://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html

关于java - 内部异常 : com. mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知错误 1049,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107607/

相关文章:

java - (java)为什么冒泡排序不排序?

java - 改变Java程序的执行起点

mysql - DBI 连接 ('database=orthomcl;host=db;mysql_local_infile=1' ,'orthomcl' ,...) 失败 : Access denied for user

PHP mySQL if 语句 - 检查电子邮件是否已经在数据库中

mysql - CodeIgniter:如何使用 WHERE 子句和 OR 子句

java - Hibernate EhCache没用过?

java - OutOfMemoryError 创建位图

java - 如何将 24 位 PNG 保存/转换为 8 位 PNG?

java - 获取ManyToMany映射表的id

java - JPA-继承