在 mysql 中跳过授权表
今天,我们将学习 mysql 的跳过授权表、授权表,以及当我们锁定 root 用户、忘记其密码或想要恢复完全权限时如何在 mysql 中使用 --skip-grant-tables
。
mysql 系统数据库中的授权表
mysql 系统数据库中的授权表有以下信息:
user
(全局权限、用户帐户和其他非特权字段/列)db
(数据库级别的权限)tables_priv
(表级别的特权)columns_priv
(列级别的特权)procs_priv
(函数和存储过程的特权)proxies_priv
(代理用户的特权)
每个授权表都由范围和特权列组成。范围列标识表中每一行的范围。
权限列表示表行授予的权限或它允许执行的操作类型。
mysql 中的 --skip-grant-tables
选项
从 mysql 8.0.3 开始,--skip-grant-tables
启用了 --skip-networking
,它自动不允许远程连接。例如,当 --skip-grant-tables
处于活动状态时,有关帐户管理的 sql 语句 alter user
将被禁用。
我们可以在以下情况下使用 --skip-grant-tables
:
- 我们不小心锁定了
root
用户。 - 我们忘记了
root
密码。 - 我们失去了
root
用户的所有权限。
让我们开始了解上述每种情况的ag捕鱼王app官网的解决方案。
当 root
用户被锁定时使用 --skip-grant-tables
-
使用 windows 管理工具停止
services.msc
中的 mysql 服务。它可以在c:\programdata\microsoft\windows\start menu\programs\administrative tools
或通过 windows 搜索栏访问。 -
通过添加以下行来更新名为
my.ini
的配置文件中[mysqld]
下的server section
:skip-grant-tables
如果你在默认位置安装了 mysql,则
my.ini
文件位于c:\programdata\mysql\mysql server 8.0\my.ini
。 -
再次启动 mysql 服务器。这次我们可以不用密码登录了。
使用 --skip-grant-tables
恢复 mysql root
用户的完整权限
我们可以使用 update
命令恢复 mysql root
用户的完全权限。
-
首先,我们需要停止
mysqld
。 -
接下来,使用
--skip-grant-table
选项重新启动它以禁用root
帐户的登录凭据。 -
此外,仅使用
mysql
再次连接到mysqld
服务器。这里我们不使用-p
选项作为密码,也可能不输入用户名。 -
在
mysql
客户端中使用以下命令来获取 mysql 中root
用户的所有权限。mysql>updatemysql.usersetgrant_priv='y',super_priv='y'whereuser='root';
我们已经使用
super_priv = 'y'
设置了超级权限。 -
现在,我们必须使用
flush
命令刷新权限,如下所示:mysql>flushprivileges;
请记住,当
--skip-grant-table
处于活动状态时,mysql 不会在查询和连接时检查授权表,这意味着任何人都可以快速远程登录并操作数据库。
在 mysql 中使用 --skip-grant-tables
重置 root
密码
在这里,我们可以使用 mysql
客户端来重置root
密码,但这是一种不太安全的方法。要继续使用此方法,请按照以下步骤操作:
-
停止 mysql 服务器并使用
--skip-grant-tables
重新启动。为什么我们要关闭服务器?因为这是一种不安全的方法,并且通过启用skip_networking
来禁用远程连接。 -
使用
mysql
客户端重新连接 mysql 服务器。此处不需要密码。 -
在
mysql
客户端中,重新加载授权表以使帐户管理语句正常工作。mysql>flushprivileges;
-
现在,用你想要的密码更新
'root'@'localhost'
帐户的密码。 -
更新语句以使用该主机名以不同的主机名部分更改
root
帐户的密码。mysql>alteruser'root'@'localhost'identifiedby'newpassword';
-
最后,我们可以使用新密码以
root
用户身份连接到 mysql 服务器。像往常一样关闭服务器并重新启动(没有--skip-grant-tables
和skip-networking
)。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
如何在 mysql 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:mysql
-
当你需要在 mysql 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
发布时间:2024/03/26 浏览次数:176 分类:mysql
-
本教程演示了如何在 mysql 中重置自动增量。
在 mysql 中使用 mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:mysql
-
你将了解阻止主机的原因。此外,通过使用 phpmyadmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。
发布时间:2024/03/26 浏览次数:199 分类:mysql
-
本教程演示如何在 mysql 中转换为整数。
发布时间:2024/03/26 浏览次数:195 分类:mysql
-
本教程演示如何在 mysql 中过滤空值。