MySQL的skip-grant-tables

安装mysql在windows和linux平台上,可以参考以下文章:

《初探MySQL-小白的Linux安装笔记》

《Windows环境安装MySQL ZIP Archive》

《MySQL 5.6 rpm安装方法和碰见的问题》

《MySQL的rpm和源码两种安装操作》

在Windows下安装MySQL 5.7时,可以使用以下指令进行初始化、服务注册和启动服务:

执行上述命令后,data路径下将出现这些数据文件:

MySQL的skip-grant-tables

一些教程提到,在首次配置时,可以在配置文件my.ini中添加skip-grant-tables参数:

此命令的作用是跳过授权表,意味着任何人都可以访问MySQL并查看所有数据表。即使忘记了账号密码,也可以使用此命令来修改密码,但需要在使用后立即关闭并重启MySQL,否则会带来很大的安全风险。

输入登录指令时,可以任意输入密码进行登录:

通过查看用户,可以确认skip-grant-tables参数确实生效:

登录后,可以通过update命令更新root用户的密码。注意,在MySQL 5.7中,存储密码的字段名为authentication_string:

密码使用password函数进行加密:

在当前模式下,可以直接使用mysql命令进行登录:

然而,跳过授权表的操作是不安全的,相当于打开了后门。因此,需要将skip-grant-tables参数注释掉:

然后在Windows的服务窗口重启MySQL服务,使用cmd-services.msc:

MySQL的skip-grant-tables

此时,使用mysql命令会提示错误1045:

同样,使用mysql -u -root -p命令登录时,也会提示错误1045:

可以指定-h参数进行登录:

此时,系统会提示使用ALTER USER命令重置密码:

此时,登录的用户不再是skip-grants用户:

尽管我对MySQL的了解尚浅,但我发现一些看似简单的知识点,如登录,实际上包含了许多原理。理解这些原理并通过实践来深入了解MySQL可能是一个艰辛的过程,但这也是量变引起质变的必经之路。希望大家共同努力。

参考资料:

https://www.php.cn/link/2065d2abc480bb9c5155747ecab64395

https://www.php.cn/link/253637b08749bde403df7fcd0b66f731

https://www.php.cn/link/ea90e42eb981294a7fb36b39326d9617

以上就是MySQL的skip-grant-tables的详细内容,更多请关注php中文网其它相关文章!