2010-03-05 2 views
0

새 필드편집 MySQL의 시스템 테이블

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

을 추가하고 mysql을 데몬을 다시 시작하여 MySQL의 사용자 테이블 (mysql 데이터베이스에서 user)를 수정 한 후에는 모든 사용자로 로그인 이제 불가능하다.

내 질문은 핵심 시스템 테이블이 변경되는 것을 막기 위해 mysql이 사용하는 mecanism은 무엇입니까? 필자는 필드 정의를 편집하거나 일부 필드를 삭제해도 나에게 좋지 않을 것이라는 것을 이해할 수 있습니다. 그러나 새로운 필드를 추가하는 것을 받아들이지 않는다는 것이 이상하다는 것을 알게됩니다. 문제가 무엇입니까?

+0

를 종료 예기치 않은 상황의 원인 핵심 시스템 테이블을 수정해서는 안되며 (사용자 ID가 id 열없이 잘 작동 함) 분명히 그렇게하는 것을 막을 수있는 방법이 없습니다. – mpe

답변

1

나는 id이라는 필드가 아직 없다는 것에 조금 놀랐습니다.

몇 가지 아이디어가 마음에 와서, 그러나 그들은 모든 추측 위치 :

코드는 mysql 데이터베이스에서 user 37 개 필드 기대
  • ; 전반 38의 추가는
  • id은 내부적으로 특별한 데이터 구조 오버 플로우가 발생하고 추가하는
  • 시스템 무결성 및 정신 검사 예기치 않은 변화를 확인하고 그 아마에서 별도로 보호용