diff --git a/archive-manager.sh b/archive-manager.sh
index 4170844..ac7afb1 100755
--- a/archive-manager.sh
+++ b/archive-manager.sh
@@ -263,12 +263,12 @@ services:
- SPRING_PROFILES_ACTIVE=prod
- SERVER_PORT=9081
# MySQL数据库配置
- - DB_HOST=mysql
- - DB_PORT=3306
- - DB_NAME=enterprise_digital_archives
- - DB_USERNAME=root
- - DB_PASSWORD=Abc@123456
- - DB_DRIVER=com.mysql.jdbc.Driver
+ - DB_HOST=mysql
+ - DB_PORT=3306
+ - DB_NAME=enterprise_digital_archives
+ - DB_USERNAME=root
+ - DB_PASSWORD=Abc@123456
+ - DB_DRIVER=com.mysql.cj.jdbc.Driver
# Redis配置
- REDIS_HOST=redis
- REDIS_PORT=6379
@@ -315,7 +315,7 @@ DB_PORT=3306
DB_NAME=enterprise_digital_archives
DB_USERNAME=root
DB_PASSWORD=Abc@123456
-DB_DRIVER=com.mysql.jdbc.Driver
+DB_DRIVER=com.mysql.cj.jdbc.Driver
# Redis配置
REDIS_HOST=redis
diff --git a/check-mysql-compatibility.sh b/check-mysql-compatibility.sh
new file mode 100755
index 0000000..abda9f8
--- /dev/null
+++ b/check-mysql-compatibility.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+echo "=== MySQL 兼容性检查脚本 ==="
+echo
+
+# 检查 MySQL 容器
+MYSQL_CONTAINER=$(docker ps --format "table {{.Names}}" | grep -i mysql | head -1)
+
+if [ -z "$MYSQL_CONTAINER" ]; then
+ echo "❌ 未找到运行中的 MySQL 容器"
+ echo "请确保 MySQL 容器正在运行"
+ exit 1
+fi
+
+echo "✓ 找到 MySQL 容器: $MYSQL_CONTAINER"
+
+echo
+echo "🔍 检查 MySQL 版本:"
+MYSQL_VERSION=$(docker exec "$MYSQL_CONTAINER" mysql --version 2>/dev/null || echo "无法获取版本")
+echo "MySQL 版本: $MYSQL_VERSION"
+
+echo
+echo "🔍 检查认证插件:"
+docker exec "$MYSQL_CONTAINER" mysql -u root -pAbc@123456 -e "SELECT plugin FROM mysql.user WHERE User='root';" 2>/dev/null || echo "无法查询认证插件"
+
+echo
+echo "🔍 检查用户权限:"
+docker exec "$MYSQL_CONTAINER" mysql -u root -pAbc@123456 -e "SHOW GRANTS FOR 'root'@'%';" 2>/dev/null || echo "无法查询用户权限"
+
+echo
+echo "💡 如果仍有连接问题,可以尝试以下解决方案:"
+echo "1. 在 MySQL 中修改用户认证方式:"
+echo " ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Abc@123456';"
+echo " FLUSH PRIVILEGES;"
+echo
+echo "2. 检查 MySQL 配置文件中的 default-authentication-plugin"
+echo
+echo "3. 确认网络连接正常:"
+echo " docker exec $MYSQL_CONTAINER ping mysql"
+
+echo
+echo "=== 检查完成 ==="
\ No newline at end of file
diff --git a/docker-compose.simple.yml b/docker-compose.simple.yml
index 709659d..cfe2cbf 100644
--- a/docker-compose.simple.yml
+++ b/docker-compose.simple.yml
@@ -23,7 +23,7 @@ services:
- DB_NAME=enterprise_digital_archives
- DB_USERNAME=root
- DB_PASSWORD=Abc@123456
- - DB_DRIVER=com.mysql.jdbc.Driver
+ - DB_DRIVER=com.mysql.cj.jdbc.Driver
# Redis配置
- REDIS_HOST=redis
- REDIS_PORT=6379
diff --git a/pom.xml b/pom.xml
index f24d69a..88ce1bc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
mysql
mysql-connector-java
- 5.1.6
+ 8.0.33
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index ba2d532..5a8da2c 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -12,8 +12,8 @@ server:
spring:
# 生产环境数据源配置
datasource:
- driverClassName: ${DB_DRIVER:com.mysql.jdbc.Driver}
- url: jdbc:mysql://${DB_HOST:mysql}:${DB_PORT:3306}/${DB_NAME:enterprise_digital_archives}?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&serverTimezone=Asia/Shanghai
+ driverClassName: ${DB_DRIVER:com.mysql.cj.jdbc.Driver}
+ url: jdbc:mysql://${DB_HOST:mysql}:${DB_PORT:3306}/${DB_NAME:enterprise_digital_archives}?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: ${DB_USERNAME:root}
password: ${DB_PASSWORD:Abc@123456}