Giải pháp cho vấn đề kết nối cơ sở dữ liệu cục bộ trong dự án JeecgBoot

Điểm khó khăn: Tại sao kết nối cơ sở dữ liệu luôn thất bại?

Nếu bạn đang gặp sự cố kết nối cơ sở dữ liệu trong dự án JeecgBoot, bài viết này sẽ cung cấp giải pháp toàn diện để xử lý các vấn đề như lỗi cấu hình, lỗi driver, hoặc lỗi kết nối. Bạn sẽ học được:

  • Cấu hình cơ bản cho kết nối CSDL
  • Kỹ thuật xác định và khắc phục lỗi
  • Thực hành tốt nhất cho môi trường đa cấu hình
  • Giải pháp tương thích driver CSDL

1. Cấu hình kết nối CSDL cơ bản

1.1 Cấu trúc cấu hình

JeecgBoot sử dụng cơ chế đa môi trường của Spring Boot thông qua file application.yml:

# application.yml
spring:
  profiles:
    active: dev
# application-dev.yml
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jimureport?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      minimum-idle: 5
      maximum-pool-size: 15
      connection-timeout: 30000

1.2 Giải thích tham số cấu hình

Tham số Mô tả Giá trị mẫu
driver-class-name Tên lớp driver CSDL com.mysql.cj.jdbc.Driver
serverTimezone Múi giờ máy chủ Asia/Shanghai

2. Các sự cố phổ biến và cách khắc phục

2.1 Lỗi không tìm thấy driver

Triệu chứng:

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

Giải pháp: Kiểm tra dependency trong pom.xml:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.27</version>
</dependency>

2.2 Lỗi định dạng URL kết nối

URL mẫu đúng:

jdbc:mysql://localhost:3306/dbname?
    useUnicode=true&
    characterEncoding=utf8&
    serverTimezone=Asia/Shanghai&
    allowPublicKeyRetrieval=true

2.3 Lỗi múi giờ

Khắc phục: Thêm tham số serverTimezone vào URL kết nối

2.4 Cơ sở dữ liệu không tồn tại

Lệnh tạo CSDL:

CREATE DATABASE jimureport 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_general_ci;

3. Thực hành đa môi trường

Cách chuyển đổi môi trường:

java -jar app.jar --spring.profiles.active=prod

4. Khởi tạo cơ sở dữ liệu

Thực thi script SQL:

mysql -u root -p
USE jimureport;
source /path/to/script.sql;

5. Tối ưu kết nối pool

spring:
  datasource:
    hikari:
      minimum-idle: 5
      maximum-pool-size: 20
      connection-timeout: 30000

6. Cấu hình bảo mật

Mã hóa mật khẩu: Sử dụng thư viện Jasypt:

spring:
  datasource:
    password: ENC(encrypted_password)

7. Công cụ chẩn đoán

# Kiểm tra trạng thái MySQL
systemctl status mysql

# Kiểm tra kết nối
mysql -h localhost -u root -p -e "SELECT 1"

8. Nguyên tắc vàng

  • Đảm bảo tính chính xác của cấu hình
  • Phân tách môi trường rõ ràng
  • Tối ưu tham số pool kết nối
  • Áp dụng SSL trong môi trường production

Thẻ: JeecgBoot mysql HikariCP Spring Boot cấu hình CSDL

Đăng vào ngày 22 tháng 6 lúc 02:44