问题原因:自己在做内网穿透的时候修改了mysql内的user表中host字段,本来是给%所有主机权限的,后来怕被攻击就想改回本地,结果打错了localhost .然后数据库全线失联.
找了好多办法,后来找到一个靠谱的
解决方案: 就是直接跳过mysql验证连接到MySQL,连接到mysql后不就任由操作了么
但是,这里要区分mysql版本....
8.0以前版本如5.5:首先在mysql的安装目录下找到 my.ini文件,之后用记事本打开,找到[mysqld] 这一行,在它的下面加入一条语句
skip-name-resolve
skip-grant-tables
8.0版本在mysql的安装目录下找到 my.ini文件,之后用记事本打开,找到[mysqld] 这一行,在它的下面加入一条语句
skip-name-resolve
skip-grant-tables
并且要加入shared-memory 或者直接打开注释掉的shared-memory
这里分版本是因为8.0如果不加shared-memory会被系统秒关闭
第二步:然后在服务里面重启mysql服务。再次回到cmd转到安装 MySQL的bin目录下,利用mysql -u root -p进入mysql ,密码直接回车跳过
然后需要改什么就直接改就可以了....
对于密码是直接跳过验证的,所以如果需要改权限,可能要用flush privileges多刷几次知道通过.再修改权限
grant all privileges on *.* to root@'localhost' identified by '123456';