禁止ROOT用户远程登陆
在实际工作中,公司的DBA都会设置禁止ROOT用户远程登陆,原因如下:
ROOT是MySQL数据库的超级管理员,几乎拥有所有权限,一旦泄露后果非常严重!ROOT是MySQL数据库的默认用户,所有人都知道,如果不禁止远程登陆,可以针对ROOT用户暴力破解密码!
为了确保数据库的安全,要保证你的MySQL数据库ROOT用户的登陆主机/IP为localhost,如下图所示
如果ROOT用户的host并非localhost,可以通过以下几步进行修改:
连接数据库,使用mysql数据库
USE mysql;
修改root用户的host字段的值
UPDATE user SET host='localhost' WHERE user='BigG';
此时ROOT用户就只能够从本机登陆,无法远程登陆了。
找回ROOT用户的密码
在MySQL中,如果只是忘记了普通用户的密码,很好解决,只需要以root用户登陆后重置密码即可。但忘记了root用户的密码,通过以下几步即可重置密码:
关闭MySQL服务
win+r打开运行,输入cmd并回车,输入指令net stop mysql80并回车,此时MySQL服务已停止
重启MySQL时关闭权限验证
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory//这一步可以关闭重启MySQL服务时的权限验证,双引号里的路径记得改成自己的路径哦
修改root用户的密码
//上一步的窗口切记不要关闭!!!//再次开启新的cmd窗口,直接输入命令mysql即可登陆数据库,此时虽然不是root用户的身份,但却拥有root身份的所有权限!FLUSH PRIVILEGES;//先刷新权限,再修改密码,这两步不要弄反了ALTER user 'root'@'localhost' IDENTIFIED BY '123456';//此时就可以正常地修改root用户的密码和主机名啦~
正常启动MySQL服务
//回到第2步的窗口,按下Ctrl+C,然后输入下面的命令net start mysql80//此时MySQL服务就正常启动啦~
注:本文是博主MySQL学习的总结,不支持任何商用,转载请注明出处!如果你也对MySQL学习有一定的兴趣和理解,欢迎随时找博主交流~