当前位置: 首页 > 知识库问答 >
问题:

错误de conexion:java.sql.sqlexception:找不到适用于jdbc的驱动程序:mysql://localhost:3306

湛铭
2023-03-14

我的Linux本地机器中有这个风景。

>

  • MySQL数据库在我的本地主机中运行(不在容器中)

    我正在使用IntelliJ和Maven开发代码。

    如果我从IntelliJ运行代码,应用程序运行良好,但如果我生成docker映像并部署它,则错误为

    错误de conexion:java.sql.sqlexception:找不到适用于JDBC的驱动程序:mysql://localhost:3306/database_name?useUnicode=true&useJDBCcompliantTimeZonesHift=true&useLegacyDateTimeCode=false&serverTimeZone=UTC

    我不明白这个错误是因为库jar mysql文件的路径不正确,还是我的docker-compose或my.cnf中有问题。

    这些都是配置和java代码。

    提前感谢我们的任何建议!

    try
    {
        // DriverManager: The basic service for managing a set of JDBC drivers.
        dbConnection = DriverManager.getConnection(config.getMySqlConnection(), config.getMySqlLogin(), config.getMySqlPassword());
    
        if (dbConnection != null)
        {
            System.out.println("Connection Successful! Enjoy. Now it's time to push data");
        }
        else
        {
            System.out.println("Failed to make connection!");
        }
    } catch (SQLException e) {
        System.out.println("Error de conexion: "+e);
        e.printStackTrace();
    } catch (Exception e) {
        System.out.println("Error desconocido: "+e);
        e.printStackTrace();
    }
    
    [mysqld]
    
    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mysql.conf.d/
    
    port = 3306
    bind-address = 0.0.0.0
    

    Docker-Compose

    version: '2.3'
    services:
      stationfeeder:
        image: repository/service_name:2.0
        container_name: containername
        mem_limit: 2048m
        entrypoint:
            - java
            - -cp
            - /app/resources:/app/classes:/app/libs/
            - -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
            - com.prject-entrypoint.Host
            - /properties
        network_mode: "host"
        environment:
            - JAVA_OPTS="-Xms2g -Xmx2g"
        volumes:
          - ./properties:/properties
        restart: always
        logging:
            driver: "json-file"
            options:
                max-size: "100m"
                max-file: "10"
    

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.project.name</groupId>
        <artifactId>http-opendata</artifactId>
        <version>2.0</version>
    
        <properties>
            <avro.version>1.8.2</avro.version>
            <kafka.version>0.11.0.1</kafka.version>
            <confluent.version>3.3.1</confluent.version>
            <jib-maven-plugin.version>2.5.0</jib-maven-plugin.version>
        </properties>
    
        <!--necessary to resolve confluent dependencies-->
        <repositories>
            <repository>
                <id>confluent</id>
                <url>http://packages.confluent.io/maven/</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>3.4.2</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20140107</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>2.4.0</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.20</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${kafka.version}</version>
            </dependency>
    
            <dependency>
                <groupId>io.confluent</groupId>
                <artifactId>kafka-avro-serializer</artifactId>
                <version>${confluent.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.5</version>
            </dependency>
            <dependency>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>1.6.1</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.2.4</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <transformers>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                        <resource>META-INF/services/java.sql.Driver</resource>
                                    </transformer>
                                </transformers>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.8</version>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
    
                <!--for specific record-->
                <plugin>
                    <groupId>org.apache.avro</groupId>
                    <artifactId>avro-maven-plugin</artifactId>
                    <version>${avro.version}</version>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>schema</goal>
                                <goal>protocol</goal>
                                <goal>idl-protocol</goal>
                            </goals>
                            <configuration>
                                <sourceDirectory>${project.basedir}/src/main/resources/avro</sourceDirectory>
                                <stringType>String</stringType>
                                <createSetters>false</createSetters>
                                <enableDecimalLogicalType>true</enableDecimalLogicalType>
                                <fieldVisibility>private</fieldVisibility>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <!--force discovery of generated classes-->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.0.0</version>
                    <executions>
                        <execution>
                            <id>add-source</id>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>add-source</goal>
                            </goals>
                            <configuration>
                                <sources>
                                    <source>target/generated-sources/avro</source>
                                </sources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.google.cloud.tools</groupId>
                    <artifactId>jib-maven-plugin</artifactId>
                    <version>${jib-maven-plugin.version}</version>
                    <configuration>
                        <container>
                            <mainClass>com.nameserviceHost</mainClass>
                            <args>
                                <arg>/opt/asd/properties</arg>
                            </args>
                        </container>
                        <from>
                            <image>openjdk:8u212-jre</image>
                        </from>
                        <to>
                            <image>qwerty/name-service:${project.version}</image>
                        </to>
                        <extraDirectories>
                            <paths>/opt/asd</paths> 
                            <permissions>
                                <permission>
                                    <file>/opt/asd/properties</file>
                                    <mode>755</mode> 
                                </permission>
                            </permissions>
                        </extraDirectories>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>build</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>
    
  • 共有1个答案

    红朝
    2023-03-14

    我刚找到解决办法。我的Docker文件有个错误...一个愚蠢的错误...

    version: '2.3'
    services:
    stationfeeder:
    image: projectName/imageName:2.5
    container_name: name
    mem_limit: 2048m
    entrypoint:
    - java
    - -cp
    -/app/resources:/app/classes:/app/libs/*   <------ without /* **doesn't run!**
    

    等等。

     类似资料:
    • 问题内容: 使用Java,尝试连接到mysql数据库时出现此错误: 我正在使用驱动程序。它在我的构建路径中。我已经重启了MySQL。我还从命令行使用root用户登录,没有密码,并且连接正常。我目前在netstat中没有看到端口3306。以前我遇到了另一个错误(我没有更改代码)。错误是“用户’root’@’localhost密码NO拒绝jdbc mysql访问” 问题答案: 在这种特殊情况下(假设没

    • 问题内容: 我正在尝试在Web项目引用的Java项目中运行hibernate模式。足够简单,除了无法hibernate以连接到数据库。我有很多人描述这个问题并获得大量答案,但是似乎没有一个对我有用。 这就是我的 hibernate.cfg.xml的 样子: 我将代码调试为 DriverManagerConnectionProvider 类,尝试使用 getConnection() 方法会引发异常

    • 我已经把驱动程序jar放在模块\com\mysql\main中,在独立的\lib中,并创建了module.xml: 我的tandalone.xml是: 我想使用jpa所以我的persistence.xml是: 我还创造了一个豆子。xml并将mysql jar放入WEB-INF/lib中。 当我创建jpa facets并创建连接时,ping指向以下链接:jdbc:mysql://localhost:

    • 当我试图在Tomcat7上运行JSF应用程序时,它会抛出这个异常。 如果我在创建EntitiyManagerFactory之前添加这一行,它可以正常工作。 我的依赖是 此外,我的应用程序工作正常tomcat 6,没有添加 有办法解决这个问题吗?谢谢

    • 问题内容: 我正在尝试将我的代码从linux移植到mac OSX LION。以下方法在Linux上正常工作。 但这在我的Mac上不起作用。我正在使用XAMMP,因此数据库的路径为。我读到的错误 基于以下帖子的反馈进行的更新: 我下载了jar并将其添加到项目的构建路径。当我尝试添加时,出现编译错误,因此我将其注释掉。然后,我运行程序以获取以下错误: 问题答案: JAVA JDK不附带特定的SQL驱动

    • 我知道这是一个老问题,但这里的情况不同。这似乎是JAVA 10或MySQLConnector/J 8.0.12 jar类的一个错误。 同样的项目(很多,不只是一个)在JAVA 8和MySQLConnector/J 5.1.39上运行良好,我以前使用过,但现在在我更新系统后就不工作了。 但是错误只出现在RowSet中。对于显式使用的DriverManager/Connection/ResultSet