SpringBoot 连接不上 MySQL

在使用 Spring Boot 开发项目时,我们通常会使用 MySQL 作为数据库。但是有时候我们可能会遇到连接不上 MySQL 数据库的问题,本文将介绍一些常见的原因及解决方法。

常见原因及解决方法

1. 数据库配置错误

首先,我们需要检查项目中的数据库配置,确保以下信息正确:

  • 数据库的地址、端口号、数据库名称
  • 数据库的用户名和密码

通常,我们将这些配置信息放在项目的 application.propertiesapplication.yml 文件中。例如,使用 YAML 格式的配置文件:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: myusername
    password: mypassword

2. 数据库服务未启动

如果数据库服务未启动,我们无法连接到数据库。请确保 MySQL 数据库服务已经正确启动。

3. 数据库权限问题

有时候,我们使用的数据库用户没有足够的权限访问特定的数据库。请确保数据库用户具有正确的权限。

4. 数据库驱动依赖缺失

在使用 Spring Boot 连接 MySQL 数据库时,我们需要在项目的依赖中添加 MySQL 驱动。通常我们使用 mysql-connector-java 驱动。

如果你使用 Maven 构建项目,可以在 pom.xml 文件中添加以下依赖:

<dependencies>
  <!-- 其他依赖 -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
  </dependency>
</dependencies>

5. 防火墙阻止连接

如果你在远程连接 MySQL 数据库,可能会受到防火墙的限制。请确保防火墙允许连接到 MySQL 数据库的端口。

6. MySQL 服务端口被占用

如果 MySQL 数据库服务端口被其他进程占用,你将无法连接到数据库。请确保 MySQL 数据库服务端口未被占用。

示例代码

下面是一个简单的 Spring Boot 示例代码,用于连接 MySQL 数据库并查询数据:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jdbc.core.JdbcTemplate;

@SpringBootApplication
public class MyApp {
  
  private final JdbcTemplate jdbcTemplate;

  public MyApp(JdbcTemplate jdbcTemplate) {
    this.jdbcTemplate = jdbcTemplate;
  }

  public void queryData() {
    String sql = "SELECT * FROM users";
    List<User> users = jdbcTemplate.query(sql, (rs, rowNum) -> {
      User user = new User();
      user.setId(rs.getLong("id"));
      user.setName(rs.getString("name"));
      return user;
    });
    System.out.println(users);
  }

  public static void main(String[] args) {
    SpringApplication.run(MyApp.class, args);
  }
}

以上代码中,我们使用 JdbcTemplate 类来执行 SQL 查询操作。在 queryData 方法中,我们使用 jdbcTemplate.query 方法执行查询,并将查询结果映射为 User 对象列表。

连接 MySQL 数据库流程图

下面是一个流程图,描述了连接 MySQL 数据库的过程:

flowchart TD
  A[开始] --> B[检查数据库配置]
  B --> C[检查数据库服务是否启动]
  C --> D[检查数据库权限]
  D --> E[检查数据库驱动依赖]
  E --> F[检查防火墙设置]
  F --> G[检查数据库服务端口]
  G --> H[结束]

总结

本文介绍了一些常见的原因及解决方法,帮助你解决 Spring Boot 连接不上 MySQL 数据库的问题。通过检查数据库配置、确保数据库服务已启动、检查数据库权限、添加正确的数据库驱动依赖、检查防火墙设置和数据库服务端口是否被占用,你可以成功连接到 MySQL 数据库并执行数据库操作。

希望本文对你有所帮助!