title: After MySQL change to utf8mb4, Error Unknown character set index for field '224' received from server
body: <p>I've changed our server MySQL database to use utf8mb4 because we need to support emoticon. I have followed the instruction based on <a href="http://mathiasbynens.be/notes/mysql-utf8mb4" rel="noreferrer">How to support full Unicode in MySQL databases</a> article by Mathias Bynens. The only difference is I wasn't changing from utf8.</p>
  
  
  
  <p>Here's the configuration:</p>
  
  <pre class="lang-none prettyprint-override"><code>[client]
  default-character-set = utf8mb4
  
  [mysql]
  default-character-set = utf8mb4
  
  [mysqld]
  character-set-client-handshake = FALSE
  init-connect = 'SET NAMES utf8mb4'
  character-set-server = utf8mb4
  collation-server = utf8mb4_unicode_ci
  </code></pre>
  
  <p>Here is MySQL <code>SHOW VARIABLES</code> output:</p>
  
  <pre class="lang-none prettyprint-override"><code>mysql&gt; SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
  +--------------------------+--------------------+
  | Variable_name            | Value              |
  +--------------------------+--------------------+
  | character_set_client     | utf8mb4            |
  | character_set_connection | utf8mb4            |
  | character_set_database   | utf8mb4            |
  | character_set_filesystem | binary             |
  | character_set_results    | utf8mb4            |
  | character_set_server     | utf8mb4            |
  | character_set_system     | utf8               |
  | collation_connection     | utf8mb4_unicode_ci |
  | collation_database       | utf8mb4_unicode_ci |
  | collation_server         | utf8mb4_unicode_ci |
  +--------------------------+--------------------+
  10 rows in set (0.00 sec)
  </code></pre>
  
  <p>After I restarted MySQL &amp; my application, the console printed the error log as below:</p>
  
  <pre class="lang-none prettyprint-override"><code>2014-08-05 17:33:49,022 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] WARN  com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6ae03500 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
  java.sql.SQLException: Unknown character set index for field '224' received from server.
      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
      at com.mysql.jdbc.Connection.getCharsetNameForIndex(Connection.java:3556)
      at com.mysql.jdbc.Field.&lt;init&gt;(Field.java:192)
      at com.mysql.jdbc.MysqlIO.unpackField(MysqlIO.java:731)
      at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:387)
      at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2076)
      at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1451)
      at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1787)
      at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
      at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
      at com.mysql.jdbc.Statement.executeQuery(Statement.java:1232)
      at com.mysql.jdbc.Connection.loadServerVariables(Connection.java:4478)
      at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4062)
      at com.mysql.jdbc.Connection.createNewIO(Connection.java:2789)
      at com.mysql.jdbc.Connection.&lt;init&gt;(Connection.java:1555)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
      at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
      at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
      at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
      at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
      at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
      at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
      at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
      at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
  Aug 5, 2014 5:33:49 PM org.hibernate.util.JDBCExceptionReporter logExceptions
  WARNING: SQL Error: 0, SQLState: null
  Aug 5, 2014 5:33:49 PM org.hibernate.util.JDBCExceptionReporter logExceptions
  SEVERE: Connections could not be acquired from the underlying database!
  Aug 5, 2014 5:33:49 PM org.hibernate.util.JDBCExceptionReporter logExceptions
  WARNING: SQL Error: 0, SQLState: null
  Aug 5, 2014 5:33:49 PM org.hibernate.util.JDBCExceptionReporter logExceptions
  SEVERE: Connections could not be acquired from the underlying database!
  </code></pre>
  
  <p>Login to my CMS nor API calls don't work. It gave me the above error for which I can't google any solution.</p>
  
  <p>What to do next, in order to fix the error?</p>