# 数据库连接问题排查和解决 ## 错误信息 ``` java.sql.SQLException: Access denied for user 'root'@'172.20.0.1' (using password: YES) ``` ## 问题原因 1. 数据库 `chat_gpt_yj` 不存在 2. MySQL root 密码不正确 3. 用户权限问题 ## 解决步骤 ### 方法1:使用初始化脚本(推荐) ```bash cd /home/gc/gangyan/chat_web_backend ./init_database.sh ``` 脚本会自动: - 测试MySQL连接 - 创建数据库 `chat_gpt_yj` - 导入所有SQL初始化脚本 ### 方法2:手动操作 #### 步骤1:安装MySQL客户端(如果没有) ```bash sudo apt install mysql-client-core-8.0 ``` #### 步骤2:连接MySQL并创建数据库 ```bash # 连接MySQL(根据实际情况修改密码) mysql -uroot -p # 在MySQL中执行: CREATE DATABASE IF NOT EXISTS `chat_gpt_yj` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE chat_gpt_yj; # 然后导入SQL文件(按顺序) SOURCE /home/gc/gangyan/chat_web_backend/doc/sql/sys.sql; SOURCE /home/gc/gangyan/chat_web_backend/doc/sql/chat_gpt.sql; SOURCE /home/gc/gangyan/chat_web_backend/doc/sql/knowledge_base.sql; SOURCE /home/gc/gangyan/chat_web_backend/doc/sql/gpt_folder.sql; SOURCE /home/gc/gangyan/chat_web_backend/doc/sql/writter_docs.sql; SOURCE /home/gc/gangyan/chat_web_backend/doc/sql/quartz.sql; ``` #### 步骤3:检查数据库配置 编辑 `src/main/resources/application-yj.yml`,确认: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/chat_gpt_yj?... username: root password: 1234567890 # 确认密码正确 ``` ### 方法3:如果密码不对,重置MySQL密码 ```bash # 停止MySQL sudo systemctl stop mysql # 以安全模式启动MySQL(跳过权限检查) sudo mysqld_safe --skip-grant-tables & # 连接MySQL mysql -uroot # 在MySQL中执行: USE mysql; UPDATE user SET authentication_string=PASSWORD('1234567890') WHERE User='root'; FLUSH PRIVILEGES; EXIT; # 重启MySQL sudo systemctl restart mysql ``` ## 验证数据库 ```bash mysql -uroot -p1234567890 -e "SHOW DATABASES;" | grep chat_gpt_yj ``` 如果看到 `chat_gpt_yj`,说明数据库创建成功。 ## 重新启动应用 ```bash cd /home/gc/gangyan/chat_web_backend java -jar target/chat_web_yj.jar --spring.profiles.active=yj ```