Knowledge Map

오늘의 삽질 mysql 8 ->1045 에러 본문

DataBase

오늘의 삽질 mysql 8 ->1045 에러

2018. 6. 25. 17:27

pymysql 을 이용해서 mysql에 접속한다.

brew를 update 한 다음에 mysql를 설치해보면 mysql 8이 설치가 된다.

pymysql 최신 버전의 경우 mysql8을 지원해주는 것을 확인할 수 있다.


하지만 정작 접속하려고 하면 1045 에러를 만나게 될 것이다.


pymysql.err.OperationalError: (1045, u"Access denied for user 'root'@'localhost' (using password: YES)")


이건 쉽게 말하면 비번이 맞지 않아서 그런 것인데, 검색해보면 전부 grant 에서 권한을 다 허용하라는 식으로 나올 것이다.

그렇게 해서 잘 되면 다행인데, 그렇게 하고나서도 안되는 경우가 있다. 그이유는 mysql 8에서는 기본적으로 sha2로 사용하는데, 코드상으로 그냥 냅다 비번을 처넣으면 그 비번 그대로 들어가는 바람에 불일치가 생기는 것이다.


아래 링크를 참고했다.

https://stackoverflow.com/questions/50652587/django-db-utils-operationalerror-1045access-denied-for-user-rootlocalhost



좀더 자세한 정보는 mysql 사이트 해당 부분을 참조할 것

https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html



그런데 이것을 해결해도 아래의 에러가 발생했다.


InternalError: (pymysql.err.InternalError) (1193, u"Unknown system variable 'tx_isolation'")


그냥 5.7 쓰기로 마음 먹었다 ^^ 


Comments