本文主要是介绍[MYSQL]当数据库被攻破如何重新恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前情提要:mysql数据库默认密码、默认端口没有改,也没做安全防护,导致被攻破被索要比特币。
那我们自然是不能给他们的,下面罗列我的补救方法。
密码修改相关
第一步大家自然都会想到先去修改密码:
mysqladmin -u root -p password "new_password"
结果修改失败,开了跳过权限表验证也没法修改。
初始化mysql相关
当我已经无法修改密码,想到初始化整个数据库重新部署。
初始化:
mysqld --initialize-insecure
执行后报错,数据文件夹已有文件(因为我们已经安装过)
此时,我们找到我们的datadir
cat /etc/my.cnf | grep datadir
然后将他挪到其他位置
mv /var/lib/mysql /tmp
再次执行初始化成功:
再启动遇到了问题,
从systemctl status mysqld.service中找到启动语句,手动执行后获取错误信息
/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS
错误信息:
[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
在my.cnf配置中新增一行:
user=mysql
报[ERROR] failed to se datadir to /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
防御手段:
服务器安全组:
打开 网络与安全 - 安全组 设置,配置3306可访问的源:
相关文件位置及命令:
配置文件位置
/etc/my.cnf
cat /etc/my.cnf | grep datadir
参考文献:
Mysql历险记: Job for mysqld.service failed because the control process exited with error code - 知乎 (zhihu.com)MYSQL常见安装错误集:[ERROR] --initialize specified but the data directory has files in it. Abort - 兜风 - 博客园 (cnblogs.com)Mysql历险记: Job for mysqld.service failed because the control process exited with error code - 知乎 (zhihu.com)记录一个Mysql服务kill后重启失败的解决方法_linux kill 3306后启动不了mysql了怎么办-CSDN博客Mysql历险记: Job for mysqld.service failed because the control process exited with error code - 知乎 (zhihu.com)
这篇关于[MYSQL]当数据库被攻破如何重新恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!