无法从 AWS Lambda 连接到 AWS RDS MySql DB。 ClassNotFoundException:com.mysql.jdbc

Posted

技术标签:

【中文标题】无法从 AWS Lambda 连接到 AWS RDS MySql DB。 ClassNotFoundException:com.mysql.jdbc【英文标题】:Not able to connect to AWS RDS MySql DB from AWS Lambda. ClassNotFoundException: com.mysql.jdbc 【发布时间】:2019-09-01 14:48:37 【问题描述】:

我正在使用 maven 项目并在 pom.xml 文件中添加了 mysql 连接器依赖项,因此我能够正确访问 RDS MySql 数据库。 但是,当我将 maven 构建 jar 部署到 AWS Lambda 并尝试使用 API Gateway 调用调用该函数时,它在 cloudwatch 中显示以下错误。

*Error :*
com.mysql.jdbc.Driver: java.lang.ClassNotFoundException
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.project.Apigateway.App.handleRequest(App.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)

我不明白为什么在我将项目 jar 部署到 AWS Lambda 时,依赖项没有得到解决。 请帮我提出您宝贵的建议。

    public Connection makeJDBCConnection() throws ClassNotFoundException 

            try 
                Class.forName("com.mysql.jdbc.Driver");
                String userName = "*****";
                String password = "*****";
                String dbName = "user";
                String jdbcUrl = "jdbc:mysql://savetemp.cga2ptefm4rq.ap-south-1.rds.amazonaws.com:3306/" + dbName + "?user="
                        + userName + "&password=" + password;
                crunchifyConn = DriverManager.getConnection(jdbcUrl);
                if (crunchifyConn != null) 
                    connected = true;
                
             catch (Exception ex) 
                System.out.println("MySQL Connection Failed!" + ex);
            
            return crunchifyConn;

        

【问题讨论】:

【参考方案1】:

确保您已安装 this 软件包。

【讨论】:

以上是关于无法从 AWS Lambda 连接到 AWS RDS MySql DB。 ClassNotFoundException:com.mysql.jdbc的主要内容,如果未能解决你的问题,请参考以下文章

无法从 AWS Lambda 连接到 AWS RDS MySql DB。 ClassNotFoundException:com.mysql.jdbc

AWS Lambda 无法连接到 RDS 实例,但我可以在本地连接?

无法通过 PDO 连接到 AWS RDS

无法从 AWS lambda 连接 AWS redshift

如何从 AWS Lambda Python 连接到 Informix DB

如何从 AWS Lambda .Net Core 应用程序 API 连接到 AWS RDS SQL Server?