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

99 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据库连接问题排查和解决
## 错误信息
```
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
```