Files
gangyan/chat_web_backend/修复数据库密码.md

104 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.

# 修复数据库密码问题
## 当前错误
```
Access denied for user 'root'@'172.20.0.1' (using password: YES)
```
## 问题
配置文件中的MySQL密码 `1234567890` 不正确。
## 解决方案
### 方案1修改配置文件中的密码如果知道正确密码
编辑 `src/main/resources/application-yj.yml`
```yaml
spring:
datasource:
password: 你的正确密码 # 修改这里
```
然后重新编译:
```bash
cd /home/gc/gangyan/chat_web_backend
./compile.sh
```
### 方案2重置MySQL root密码
#### 步骤1停止MySQL服务
```bash
sudo systemctl stop mysql
# 或者
sudo service mysql stop
```
#### 步骤2以安全模式启动MySQL
```bash
sudo mysqld_safe --skip-grant-tables --skip-networking &
```
#### 步骤3无密码连接MySQL
```bash
mysql -uroot
```
#### 步骤4重置密码
```sql
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234567890';
FLUSH PRIVILEGES;
EXIT;
```
#### 步骤5重启MySQL
```bash
sudo pkill mysqld
sudo systemctl start mysql
```
#### 步骤6创建数据库
```bash
mysql -uroot -p1234567890 -e "CREATE DATABASE IF NOT EXISTS \`chat_gpt_yj\` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
```
#### 步骤7导入SQL脚本
```bash
cd /home/gc/gangyan/chat_web_backend
mysql -uroot -p1234567890 chat_gpt_yj < doc/sql/sys.sql
mysql -uroot -p1234567890 chat_gpt_yj < doc/sql/chat_gpt.sql
mysql -uroot -p1234567890 chat_gpt_yj < doc/sql/knowledge_base.sql
mysql -uroot -p1234567890 chat_gpt_yj < doc/sql/gpt_folder.sql
mysql -uroot -p1234567890 chat_gpt_yj < doc/sql/writter_docs.sql
mysql -uroot -p1234567890 chat_gpt_yj < doc/sql/quartz.sql
```
### 方案3如果MySQL在Docker中
```bash
# 查找MySQL容器
docker ps | grep mysql
# 进入容器
docker exec -it <容器名> mysql -uroot -p
# 然后执行重置密码的SQL
```
### 方案4临时跳过数据库检查仅用于测试
如果只是想先启动看看其他功能,可以临时禁用数据库自动配置:
`ChatApplication.java` 中已经排除了 `DataSourceAutoConfiguration`,所以理论上可以启动,但功能会受限。
## 验证
测试连接:
```bash
mysql -uroot -p1234567890 -e "SHOW DATABASES;"
```
如果成功,应该能看到数据库列表。