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}