riyenas0925 / Sejong_Track_Management

:school: 세종대학교 트랙관리 프로그램
Apache License 2.0
6 stars 2 forks source link

[bug] 회원가입 - 한글입력시 Illegal mix of collations.. #94

Closed kimhanui closed 4 years ago

kimhanui commented 4 years ago

2019-11-22 13:18:52.416 WARN 21848 --- [nio-7070-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1267, SQLState: HY000

2019-11-22 13:18:52.416 ERROR 21848 --- [nio-7070-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

2019-11-22 13:18:52.419 INFO 21848 --- [nio-7070-exec-3] o.h.e.internal.DefaultLoadEventListener : HHH000327: Error performing load command : org.hibernate.exception.GenericJDBCException: could not extract ResultSet

kimhanui commented 4 years ago

보통Illegal mix of collations에러가 나는 원인은 WHERE에서 비교할 때 테이블은 A라는 collation으로 되어있고 변수가 B라는 collation으로 되어있어 발생한다...

[출처] Mysql에서Illegal mix of collations 에러가 날때...|작성자 비우꺼

형식
ALTER TABLE 테이블명 DEFAULT CHARACTER SET 캐릭터셋 COLLATE 콜레이션
예시
ALTER TABLE table1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
java.sql.SQLException: Cannot change column 'id': used in a foreign key constraint 'FKfq8gs22gq5tfr888j0q6tocoq' of table 'sejongtrack.tbl_member_role'

kimhanui commented 4 years ago

image

오류:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #7 of URL [file:/D:/Github/Sejong-track-2019/Project-Sejong-Track-Management/target/classes/data.sql]: ALTER TABLE tbl_member convert to charset utf8; nested exception is java.sql.SQLException: Cannot change column 'id': used in a foreign key constraint 'FKfq8gs22gq5tfr888j0q6tocoq' of table 'sejongtrack.tbl_member_role'

@riyenas0925

riyenas0925 commented 4 years ago

Data.sql에서 7번줄과 8번줄을 바꿔봐바 member_role 먼저하고 그다음에 member 바꿔줘야 할것 같아서

kimhanui commented 4 years ago

Initialization of bean failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #7 of URL [file:/D:/Github/Sejong-track-2019/Project-Sejong-Track-Management/target/classes/data.sql]: ALTER TABLE tbl_member_role convert to charset utf8; nested exception is java.sql.SQLException: Cannot change column 'member': used in a foreign key constraint 'FKfq8gs22gq5tfr888j0q6tocoq'

똑가틈.. @riyenas0925

riyenas0925 commented 4 years ago

@kimhanui mysql console 열고 ALTER TABLE tbl_member_role convert to charset utf8; 명령어 입력 해서 해봤는데 아래 오류가 발생....

ERROR 1025 (HY000): Error on rename of './sejongtrack/#sql-1f9_3f' to './sejongtrack/tbl_member_role' (errno: 150)

찾아보니까 외래키 관련이라고 해서 우선 외래키 만들어주는 부분인 @OneToMany 부분 삭제 했더니 잘되긴 하네 ㅇㅇ 근데 내가 회원가입 코드를 못봐서 연관관계 삭제해도 될지 모르겠네 코드 하나 커밋 하고 pr 올려서 보여줄수 있나??

riyenas0925 commented 4 years ago

@kimhanui 이전 스프링 세큐리티 이슈에 올려주면 될것 같음 ㅇㅇ

kimhanui commented 4 years ago

연관관계 양쪽(member, memberRole) 다 삭제 + data.sql에 권한도 줬을 때

한글처리: ⭕️ (member , member_role권한부여 순서는 상관없었음)

image

그런데? 연관관계 맺어주려고 수정작업중 알아서 생긴 테이블....(왜생기는지 아직 모르겟음)

image

riyenas0925 commented 4 years ago

@kimhanui 전에 생성 된게 남아있는거일수도 있어서 Drop 해서 삭제한다음에 재실행 해서 다시 생기는지 한번 봐주라 그리고Spring Security 어느정도 했는지 아래 Spring Security 이슈에 올려주라