sql >> Database >  >> RDS >> Mysql

Hoe MySQL JDBC 08001 Databaseverbindingsfout op te lossen?

Wanneer u het MySQL JDBC-stuurprogramma gebruikt om verbinding te maken met de MySQL-databaseserver. U kunt onderstaande foutmeldingen tegenkomen.

try {
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/dev2qa?useSSL=false","test","666888");
} catch (SQLException ex) {
    ex.printStackTrace();
    System.out.println("SQL State : " + ex.getSQLState());
}

Hieronder staan ​​de foutmeldingen.

INFO: Pre-instantiating singletons in [email protected]: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dataSource,userAccountDao]; root of factory hierarchy
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

En de SQL-statuscode is 08001 . De reden voor deze fout is dat uw MySQL JDBC jar-bestandsversie niet overeenkomt met de MySQL-databaseserverversie .

1. Verkrijg het versienummer van de MySQL-databaseserver.

  1. Open Systeemvoorkeuren in macOS.
  2. Klik op het MySQL-pictogram in het pop-upvenster.
  3. Dan kun je de MySQL-serverversie krijgen.

2. Download Matched MySQL Server JDBC Version Jar File.

  1. Je kunt het MySQL JDBC-jar-bestand downloaden van de maven-repository. Als uw MySQL-serverversie 8.0.12 is, moet u JDBC-jars versie 8.0.12 of 8 downloaden.
  2. Als u maven en pom.xml gebruikt om uw jar-bestanden voor projectafhankelijkheid te beheren, moet u de JDBC-jar-bestandsversie in pom.xml opgeven, zoals hieronder.
    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.12</version>
    </dependency>

  1. PDOException SQLSTATE [HY000] [2002] Geen dergelijk bestand of map

  2. Hoe de maximale waarde van het kolomtype integer te krijgen dat is opgeslagen als typetekst in de sqlite-tabel?

  3. PostgreSQL:de veelzijdige INSERT

  4. Wat doet SUBSIDIEGEBRUIK OP SCHEMA precies?