DBAtlas · 데이터베이스 운영 아틀라스

1836: ER_READ_ONLY_MODE: Running in read-only mode (읽기 전용 모드로 실행 중)

MySQL

의미

InnoDB가 읽기 전용 모드(innodb_read_only=ON)로 실행 중이거나 데이터 디렉터리/미디어가 읽기 전용이어서 InnoDB 테이블에 대한 쓰기와 DDL이 거부된다. 참고: read_only/super_read_only가 활성화된 상태에서 쓰기를 시도하면 이 코드가 아니라 1290(ER_OPTION_PREVENTS_STATEMENT)이 반환된다.

원인

서버가 innodb_read_only=ON으로 시작되었으며(예: 읽기 전용 미디어, 공유 데이터 디렉터리, 분석용 복사본), 이 모드에서는 InnoDB 테이블에 INSERT/UPDATE/DELETE, CREATE/DROP/ALTER TABLE 같은 변경을 할 수 없다.

해결 방법

쓰기가 필요하면 innodb_read_only 없이 서버를 시작한다: my.cnf에서 innodb_read_only=ON 줄을 제거하고 재시작한다(이 변수는 동적이 아니므로 재시작이 필요하다). 상태 확인: SELECT @@innodb_read_only; 데이터 디렉터리와 파일 시스템에 쓰기가 가능한지 확인한다. replica/HA secondary에 쓰는 경우(1290)라면 쓰기를 primary로 라우팅한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목