250901-MySQL--skip-grant-tables跳过权限表-处理数据库异常恢复数据

你可以将 --skip-grant-tables 选项添加到 MySQL 的配置文件中,以便在每次启动时自动应用此设置。然而,需要注意的是,
--skip-grant-tables 选项会跳过权限表的加载,这意味着所有用户都可以无需密码登录到 MySQL
服务器,这会带来重大的安全风险。因此,通常只在进行特定维护任务时临时使用此选项。

--skip-grant-tables 添加到配置文件

  1. 找到 MySQL 配置文件: MySQL 的配置文件通常名为 my.cnfmy.ini,位于 /etc/mysql//etc/mysql/mysql.conf.d/
    或 MySQL 安装目录下。

  2. 编辑配置文件: 打开配置文件,找到 [mysqld] 部分,并添加 --skip-grant-tables 选项。例如:

    1
    2
    [mysqld]
    skip-grant-tables
  3. 保存并关闭文件

  4. 重启 MySQL 服务: 重启 MySQL 服务以应用更改:

    1
    sudo systemctl restart mysql

使用 --skip-grant-tables 的注意事项

  • 安全性:由于 --skip-grant-tables 会跳过权限检查,任何用户都可以无需密码登录到 MySQL
    服务器。因此,在使用此选项时,必须确保数据库服务器不对外部网络开放,或者在防火墙中严格限制访问权限。
  • 临时使用:通常只在需要修复权限表或进行其他需要跳过权限检查的维护任务时临时使用 --skip-grant-tables
    。完成这些任务后,应立即从配置文件中移除此选项,并重启 MySQL 服务。
  • 备份:在修改配置文件或进行任何可能影响数据库安全性的操作之前,确保备份所有重要数据。

从配置文件中移除 --skip-grant-tables

完成维护任务后,应立即从配置文件中移除 --skip-grant-tables 选项,并重启 MySQL 服务以恢复正常的权限检查: