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

104 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

# 修复数据库密码问题
## 当前错误
```
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;"
```
如果成功,应该能看到数据库列表。