2.2 KiB
2.2 KiB
数据库连接问题排查和解决
错误信息
java.sql.SQLException: Access denied for user 'root'@'172.20.0.1' (using password: YES)
问题原因
- 数据库
chat_gpt_yj不存在 - MySQL root 密码不正确
- 用户权限问题
解决步骤
方法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