前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大型生产事故,开源项目蘑菇博客差点被删库

大型生产事故,开源项目蘑菇博客差点被删库

作者头像
陌溪
发布2021-03-22 12:45:42
3490
发布2021-03-22 12:45:42
举报
文章被收录于专栏:陌溪教你学编程

前言

今天有个热心的小伙伴,通过 MySQL 图形化管理工具 SQLyog 进行远程数据库连接,成功进入了 蘑菇博客 的生产环境数据库。然后在博客数据表中增加一个超级管理员账号,最后通过新创建的超级管理员,在蘑菇博客后台转悠了一圈,然后进入蘑菇博客交流群和我反馈了这个 BUG ,在这里首先感谢这位小伙伴的不删库之恩 ....

问题缘由

问题出现的原因,是因为蘑菇博客生产环境的数据库使用的远程登录密码为 默认密码(mogu2018) 。也就是说,当我们在 Linux 服务器中,使用下面的命令进行数据库连接

代码语言:javascript
复制
# 连接mysql
mysql -u root -p
# 输入密码
mogu2020

发现使用密码:mogu2020 ,能够成功在服务器上登录MySQL

命令行方式进入MySQL

然后我们在通过 SQLyog 进行测试,我们输入密码 mogu2018

通过SQLyog远程连接MySQL

发现也能够成功登录系统!问题就出在这里呢,我以为我把密码改成了 mogu2020 ,但是其他小伙伴如果使用远程工具,还可以继续使用 mogu2018 进行登录!

解决方案

首先这个问题出现的原因,是因为远程连接的密码和本地连接的密码不一致引起的,也就是说我在部署完 MySQL 后,只修改了一个所引起的,首先我们查询 mysql 用户

代码语言:javascript
复制
# 登录mysql
mysql -u root -p

# 使用mysql数据库
use mysql

# 查询mysql用户
select user, host from mysql.user;

我们能够发现有4个用户

查询mysql的连接用户

其中 host 为 % 的表示是远程连接用户,而 localhost 和 127.0.0.1 都是本地用户

下面给出的配置是蘑菇博客在线上SpringBoot项目连接 MySQL 数据库的配置

代码语言:javascript
复制
  datasource:
    username: root
    password: mogu2020
    url: jdbc:mysql://localhost:3306/mogu_admin

因为 MySQL 和项目是在同一个云服务器中,所以直接通过 localhost,即可连接。

而我们在 Windows 上通过 SQLyog 远程连接我们的云服务器,就只能通过 % 用户进行连接了,现在我们要做的是修改 % 用户(也远程连接用户) 的 密码即可。

代码语言:javascript
复制
# 修改密码,改成 mogu2020
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'mogu2020' WITH GRANT OPTION;

# 刷新
flush privileges;

修改完密码后,SQLyog 远程连接通过 mogu2018 无法登录了,正所谓亡羊补牢,为时不晚。因为之前修改密码的时候,只修改了 localhost 的,而没有修改%的,而导致这个问题的出现,最后再次感谢热心的小伙伴发现这个问题,以及小伙伴的不删库之恩~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌溪教你学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 问题缘由
  • 解决方案
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档