1. ホーム
  2. java

不明な文字セットです。'utf8mb4'

2022-02-21 20:45:03

不明な文字セットです。'utf8mb4'

昨夜から何時間も悩まされている問題、c3p0を使っても、SpringのDriverManagerDataSourceを使っても、サーバー上のリモートデータベースに接続できず、報告され続けるエラーは次の通り。

org.springframework.jdbc.CannotGetJdbcConnectionException: ネストされた例外は com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException.Could not get JDBC Connection で、これは JDBC 接続を取得できませんでした。不明な文字セットです。'utf8mb4'

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:464)

at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:472)

at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:477)

at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:486)

..........................

私の設定によると、jdbc:mysql://xx.xx.xx:3306/flash_fee?useUnicode=true&characterEncoding=utf8となっています。

接続にutf8の文字セットを使っているだけで、なぜ接続時にmb4が続かないといけないのか、このことがよくわからない。

今朝やっと解決しました!原因はMysqlのドライバのバージョンでした。

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <バージョン>5.1.18</バージョン>

</dependency>

に変更します。

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <バージョン>5.1.6</バージョン>

</dependency>

このMysqlドライバのバージョンが新しすぎて動作しない理由は不明です。サーバーのMysqlのバージョンを確認しに行った。

サーバーバージョン: 6.0.11-alpha-log ソース配布元

私たちのサーバーのメンテナが何を考えていたのかわかりませんが、彼はこんな変わったバージョンのMysqlを、それもアルファ版をインストールしたのです。なんて迷惑なんだ

技術的なことを見つけるために、斗ニャンはまだできないようです、または、グー兄弟ああ!?

参考記事 http://kenai.com/jira/browse/ACTIVERECORD_JDBC-160

昨夜から何時間も悩まされている問題、c3p0を使っても、SpringのDriverManagerDataSourceを使っても、サーバー上のリモートデータベースに接続できず、報告され続けるエラーは

org.springframework.jdbc.CannotGetJdbcConnectionException: ネストされた例外は com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException.Could not get JDBC Connection で、これは JDBC 接続を取得できませんでした。不明な文字セットです。'utf8mb4'

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:464)

at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:472)

at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:477)

at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:486)

..........................

私の設定によると、jdbc:mysql://xx.xx.xx:3306/flash_fee?useUnicode=true&characterEncoding=utf8となっています。

接続にutf8の文字セットを使うだけで、なぜ接続時にmb4が続かないといけないのか、このことがよくわからない。

今朝、ようやく解決しました。原因はMysqlのドライバのバージョンでした。

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <バージョン>5.1.18</バージョン>

</dependency>

に変更します。

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <バージョン>5.1.6</バージョン>

</dependency>

このMysqlドライバのバージョンが新しすぎて動作しない理由は不明です。サーバーのMysqlのバージョンを確認しに行った。

サーバーバージョン: 6.0.11-alpha-log ソース配布元

私たちのサーバーのメンテナが何を考えていたのかわかりませんが、彼はこんな変わったバージョンのMysqlを、それもアルファ版をインストールしたのです。なんて迷惑なんだ

技術的なことを見つけるために、斗ニャンはまだできないようです、または、グー兄弟ああ!?

参考記事 http://kenai.com/jira/browse/ACTIVERECORD_JDBC-160