mysql 8.0 忘记root密码后重置

 

最近状态很很差,一直晕晕晕晕晕晕乎乎的,一个测试实例,下班前修改了一下root的密码,接着就下班走人,次日来发现root密码忘了
恰好自动化安装脚本整理好了,原本想着算了直接重装实例得了,简单省事也花不了半分钟,反正是测试实例,没什么大问题
发现有些思惟定势,因此最近一直暗示本身要作一些一上来就排斥的事,强制改变一下思惟方式,那么就重置一下,不要经过重装来绕过这个问题
试了好几种方式,有的行有的不行,直说最简单可行的一种方法:
 
1,中止实例(若是实例在开启的话),非服务名启动,也即用mysqld命令加上--skip-grant-tables方式启动MySQL服务
   /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/usr/local/mysql8_data/mysql8000/etc/my.cnf --skip-grant-tables &
  或者
  /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/bin/mysqld_safe --defaults-file=/usr/local/mysql8_data/mysql8000/etc/my.cnf  --skip-grant-tables &
2,本地以sock方式链接值该实例,指定实例的sock文件后回车让输密码,继续回车可正常链接
3,切换到mysql库下,
    3.1.执行update user set authentication_string = '' where user = 'root';
    3.2.刷新权限,flush privilegs;
    3.3.重置密码:alter user 'root'@'%' identified by '********';
    3.4.刷新权限,flush privilegs;
4,退出当前链接后,若是继续采用步骤2中的方式链接,发现是连不上的,必须输入密码
 

 

须要注意的是,忘记密码后,以--skip-grant-tables启动实例以后,在本地只能以sock链接方式登陆。
若是使用tcp/ip方式登陆是不可行的,提示输入密码以后,继续回车,会提示 Can't connect to MySQL server on '127.0.0.1',不难理解,为确保安全,重置密码只能在本地(sock)链接。mysql

 

 

over,继续干活。linux

 
 
 
 
 
相关文章
相关标签/搜索