개발로 자기계발
article thumbnail
Published 2023. 6. 19. 14:11
MySQL Read Only 에러 해결 버그처리
728x90

테이블을 생성하고 나서 데이터의 추가, 수정, 삭제 등을 하려고 했지만 할 수가 없었다.

이유는 테이블이 Read Only가 되어있었기 때문이다.

 

이런 상황에서 발생할 수 있는 경우는

1. 사용자 권한이 읽기 전용(read-only)으로 설정되어 있는 경우
2. 테이블에 기본 키(Primary Key)가 없는 경우

* MySQL 서버 자체가 읽기 전용이 되어있을 수도 있다.

 

권한

1번 사항은 해당 User에 GRANT 명령어를 통해 권한을 부여하면 된다.

 

기본 키(PK)

2번 사항은 테이블에 기본 키(Primary Key)가 없는 경우이다.

테이블에 기본 키(Primary Key)가 없으면 데이터의 추가, 수정, 삭제를 허용하지 않는다.

이유는 데이터 무결성을 보장하기 위한 것이다.

 

기본 키(Primary Key)는 테이블의 각 레코드를 고유하게 식별하는 데 사용된다. 이로 인해 데이터베이스는 기본 키를 사용하여 특정 레코드를 빠르게 찾을 수 있다. 그리고 기본 키가 없다면, 특정 레코드를 찾거나 수정하거나 삭제하는 것이 어렵다.

왜냐하면 각 레코드를 고유하게 식별할 수 있는 방법이 없기 때문이다.

따라서 기본 키가 없는 테이블은 변경이 불가능한 상태, 즉 읽기 전용(read-only) 상태로 표시되며, 그래서 기본 키를 설정하면 이 상태가 해제되며 데이터의 추가, 수정, 삭제가 가능해진다.

 

DB 확인

create table test
select * from sys_config;

현재는 Read Only

 

ALTER TABLE test
ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY FIRST;

SELECT * FROM test;

PK를 추가하면

Read Only가 해제 된 것을 볼 수 있다.

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)