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

99 lines
2.2 KiB
Markdown
Raw Permalink Normal View 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使用初始化脚本推荐
```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
```