0%

Django에서 migrate 수행 시 DB 에러(binary log since BINLOG_FORMAT..) 가 발생하는 경우

Django에서 manage.py migrate를 수행…

간만에 Djnago로 해볼 것이 있어서 새로 프로젝트를 구성하였다.
그리고 모델을 구성 후 manage.py migrate 를 수행했더니 아래와 같은 에러가 발생하였다.

1
2
_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1665, 'Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.')

이것의 발생 원인은 mysql의 bin log 때문에 발생하였다.
bin log란 mysql이 쿼리를 수행하면서 쌓는 로그이며, 트랜젝션 시 시점 복구 등을 수행하는 역할을 하는 것이다.
일단 에러의 해결 방법은 mysql에 접근하여 처리를 해야 한다.
물론 mysql의 관리자 권한 계정(root) 으로 진행해야 한다.

mysql> SET GLOBAL binlog_format = 'ROW';

위 명령어를 수행 후 아래의 명령어로 확인을 해보자

mysql> show variables like 'binlog_format';

이렇게 하면 binlog_format은 STATEMENT로 변경이 되었다면 된 것이다.

위와같이 수행 후 다시 시도해보자.