2015-01-08 1 views
3

:. MySQL의 DB로 트위터 텍스트를로드하려고 일부 트윗 utf8mb4 문자를 가지고 java.SQL.Exception을 던지는 내가이 문제를 해결합니다. 덕분에 지금 this post.트위터 텍스트 : utf8mb4의 SQL 오류 "reportcharsetnr는 ("컨텍스트에 대한

에, 자바 코드는 오류없이 실행하지만, 내 테이블에 간단한 select * from test.tweet을 수행 할 수 없습니다 나는 다음과 같은 SQL 오류 얻을

:

Error Code: 0 45) . Please reportcharsetnr (

,691,363합니다. (210)

SQL 코드 :

create table test.tweet (
    text varchar(200) character set utf8mb4 collate utf8mb4_unicode_ci not null); 

자바 코드 :(나는이 작품을 알고)

// create a mysql database connection 
     String myDriver = "com.mysql.jdbc.Driver"; 
     String myUrl = "jdbc:mysql://localhost:3306/test?"; 
     Class.forName(myDriver).newInstance(); 
     Connection conn = DriverManager.getConnection(myUrl, "root", "pass"); 
     PreparedStatement setNames = conn.prepareStatement("SET NAMES 'utf8mb4'"); 
     setNames.execute(); 

//Load the tweets into a mySQL DB 
        loadTweets(jsonObject, conn); 

이 오류에 대한 인터넷에서 아무 것도 없습니다. 나는이 오류 메시지 쿼리 할 수 ​​없습니다 이유는 어떤 생각 : 내가 만든와 MySQL 워크 벤치에서 데이터베이스 작업을 시도한 후

Error Code: 0 45) . Please reportcharsetnr (
MySQL error message

+0

나는 내 자신의 질문을 실제로 풀었고, 이것이 유일하다고 생각하기 때문에 낮은 평판에도 불구하고 대답을 제공하고자합니다. 먼저 전체 SCHEMA를 삭제해야했습니다. 둘째, 나는 SQL 문을 실행했다. 'utf8mb4'라는 이름을 설정했다. 셋째, 테이블을 만들었습니다 : 테이블 test.test (id 기본 키가 아닌 null, 텍스트 varchar (64) charset utf8mb4 collate utf8mb4_unicode_ci) 문자 집합 utf8mb4. 네 번째로, Java PreparedStatement를 실행할 때마다 실제로 위의 "set names 'utf8mb4'를 실행합니다 .... 그게 누군가를 돕기를 바랍니다. –

답변

0

는이 오류를 얻고 있었다. Workbench를 다시 시작하면 문제가 사라졌습니다.

1

데이터 정렬없이 SET NAMES을 실행할 때 MySQL Workbench에서 오류가 발생합니다.

나는 그것을 실행 (제대로 정렬 변경) 수정 :

SET NAMES 'utf8mb4' collate 'utf8mb4_spanish_ci'; 

당신은 연결을 생성 한 후 코드를 실행할 수 있습니다.

+0

덕분에 도움이되었습니다. – Makky

+0

이 변형을 사용했습니다. SET NAMES 'utf8'COLLATE 'utf8_unicode_ci'; –

+0

@AaronReed주의 MySQL의 차트 세트 "utf8"에는 4 바이트 UTF-8 문자가 포함되지 않으므로 " utf8mb4 " – aanton

관련 문제