com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

       at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.

       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.


原因:

MySQL的varchar主键只支持不超过768个字节 或者 768/2=384个双字节 或者 768/3=256个三字节的字段

而 GBK是双字节的,UTF-8是三字节的。


最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,

如    default-character-set = utf8

     character_set_server =  utf8

  修改完后,重启mysql的服务,service mysql restart

  使用 mysql> SHOW VARIABLES LIKE 'character%';查看