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