Files
gangyan/chat_web_backend/数据库问题排查.md

2.2 KiB
Raw Blame History

数据库连接问题排查和解决

错误信息

java.sql.SQLException: Access denied for user 'root'@'172.20.0.1' (using password: YES)

问题原因

  1. 数据库 chat_gpt_yj 不存在
  2. MySQL root 密码不正确
  3. 用户权限问题

解决步骤

方法1使用初始化脚本推荐

cd /home/gc/gangyan/chat_web_backend
./init_database.sh

脚本会自动:

  • 测试MySQL连接
  • 创建数据库 chat_gpt_yj
  • 导入所有SQL初始化脚本

方法2手动操作

步骤1安装MySQL客户端如果没有

sudo apt install mysql-client-core-8.0

步骤2连接MySQL并创建数据库

# 连接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,确认:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/chat_gpt_yj?...
    username: root
    password: 1234567890  # 确认密码正确

方法3如果密码不对重置MySQL密码

# 停止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

验证数据库

mysql -uroot -p1234567890 -e "SHOW DATABASES;" | grep chat_gpt_yj

如果看到 chat_gpt_yj,说明数据库创建成功。

重新启动应用

cd /home/gc/gangyan/chat_web_backend
java -jar target/chat_web_yj.jar --spring.profiles.active=yj