mysql - 编辑MySQL系统表

标签 mysql

通过添加新字段修改 mysql 用户表 (mysql.user) 后

ALTER TABLE mysql.user ADD id integer(11) unsigned FIRST;

并重新启动mysql守护进程,现在无法以任何用户身份登录。

我的问题是mysql使用什么机制来防止其核心系统表被更改?我可以理解,如果我编辑字段定义,或者更糟糕的是,如果我删除一些字段,它不会喜欢我。字段,但我觉得很奇怪,它根本不接受我添加新字段。有什么问题吗?

最佳答案

我有点惊讶居然还没有名为 id 的字段。

我想到了几个想法,但它们都是猜测:

  • 代码预计 mysql.user 中有 37 个字段;添加第 38 个导致数据结构溢出
  • id 在内部是特殊的,添加它会导致意外情况
  • 系统完整性和健全性检查发现了意外变化并进行保护性关闭

关于mysql - 编辑MySQL系统表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384935/

相关文章:

php - 多对一关系,其中子实体用于 AJAX 文件上传

MySQL 变量作为带有其他表元素的子查询的结果

android - Mysql 查询(Where)与 edittext android

PHP 从 unix 时间戳中减去分钟

PHP MySQL 将来自不同行的具有相同值的单元格组合在一起

mysql - 在 Mysql 和 Windows XP 中使用批处理文件创建和恢复数据库

php - 如何最好地存储用户信息和用户登录名和密码

php - 在插入之前将字符串转换为 mysql 日期格式

mysql - 如何将 Linux 服务器中的 MySQL 表名更改为不区分大小写?

c# - 只允许两种类型的用户