3

对于上下文:尝试将 Twitter 文本加载到 MySQL 数据库中。一些推文包含utf8mb4引发java.SQL.Exception的字符。我解决了这个问题,感谢这篇文章。

现在,Java 代码运行没有错误;但是,我不能select * from test.tweet在我的桌子上执行简单的操作。

我收到以下 SQL 错误:

错误代码:0 45) 。请报告charsetnr (

SQL 代码:

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

Java代码:( 我知道这行得通)

// 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);

互联网上没有关于此错误的信息。为什么我无法查询此错误消息的任何想法:

错误代码:0 45) 。请报告charsetnr (
MySQL 错误信息

4

2 回答 2

1

在 MySQL Workbench 中,当我在SET NAMES没有排序规则的情况下运行时也会出现该错误。

我修复它执行(正确更改排序规则):

SET NAMES 'utf8mb4' collate 'utf8mb4_spanish_ci';

创建连接后,您可以在代码中执行它。

于 2015-12-03T11:30:57.563 回答
0

我在 MySQL Workbench 中创建并尝试使用数据库后收到此错误。重新启动 Workbench 后,我的问题消失了。

于 2015-08-18T04:20:08.367 回答