Closed kimhanui closed 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'
오류:
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
Data.sql에서 7번줄과 8번줄을 바꿔봐바 member_role 먼저하고 그다음에 member 바꿔줘야 할것 같아서
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
@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 올려서 보여줄수 있나??
@kimhanui 이전 스프링 세큐리티 이슈에 올려주면 될것 같음 ㅇㅇ
한글처리: ⭕️ (member , member_role권한부여 순서는 상관없었음)
@kimhanui 전에 생성 된게 남아있는거일수도 있어서 Drop 해서 삭제한다음에 재실행 해서 다시 생기는지 한번 봐주라 그리고Spring Security 어느정도 했는지 아래 Spring Security 이슈에 올려주라
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