源:http://blog.csdn.net/xmqywx/article/details/9035485
评:
Unknown character set: 'utf8mb4'
从昨天晚上开始,困扰了我几个小时的问题,无论用c3p0还是用Spring的DriverManagerDataSource都无法连接我服务器上的远程数据库,一直报的错误就是:
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: '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.xx:3306/flash_fee?useUnicode=true&characterEncoding=utf8
就是使用utf8字符集进行连接,不知道为什么在连接的时候非要在后面加上mb4,也不知道这东西是啥。
这个问题今天上午终于解决,是由于Mysql驱动版本引起的:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
改为:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
不清楚这个Mysql的驱动为什么版本太新了还不可以。去查看了一下服务器的Mysql版本:
Server version: 6.0.11-alpha-log Source distribution
不知道我们的服务器维护人员怎么想的,竟然装了这么奇葩的一个Mysql版本,还是个alpha的。。。真是蛋疼了!
看来度娘还是不行啊,要找技术东西还是得谷谷哥啊!
参考文章:http://kenai.com/jira/browse/ACTIVERECORD_JDBC-160
分享到:
相关推荐
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 如果有特定列需要更改,可以针对列执行类似的操作。 总的来说,从utf8转换到utf8mb4涉及多个步骤,包括检查环境、修改...
### 错误1:`mysqlbinlog: [ERROR] unknown variable ‘default-character-set=utf8mb4’` 当在`my.cnf`配置文件中设置`default-character-set=utf8mb4`后,尝试使用`mysqlbinlog`工具查看binlog时,会遇到此错误。...
解决该错误的方法是添加 --default-character-set=utf8 选项到 mysql 命令中。这将告诉 mysql 命令使用 utf8 字符集来导入数据库文件。具体的命令如下: mysql -u root -p123456 --default-character-set=utf8 db1...
ERROR 2019 (HY000): Can’t initialize character set gb2312 搞了好半天,MySQL都重装了两次,号悲剧。。。 之前设置了系统编码全都是UTF-8了的 vi /etc/sysconfig/i18n LANG=zh_CN.UTF-8 LANGUAGE=zh_...
确保CSV文件的编码与数据库表的字符集匹配,如GBK、UTF-8等。 综上所述,当使用SQLyog导入CSV数据失败时,可以通过检查文件格式、使用命令行导入、处理特殊字符、确认字段对应关系、解决权限问题以及调整文件路径和...
代码如下:character-set-server = utf8 之后, 代码如下:character_set_client、 character_set_connection、character_set_results 就始终都是和服务器端保持一致了,即便在mysql客户端加上选项 代码如下:–...
因此,修改`my.cnf`配置文件,将`default-character-set=utf8`改为`character-set-server=utf8`,保存并重启MySQL服务。例如: ```bash [mysqld] ... character-set-server=utf8 ``` 然后,使用`service mysql ...
default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-...
CREATE DATABASE web CHARACTER SET utf8; ``` 创建表时,也要指定字符集为UTF-8,如: ```sql CREATE TABLE stocklist ( stockno VARCHAR(10) CHARACTER SET utf8, stockname VARCHAR(50) CHARACTER SET utf8 )...
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE TABLE `test` ( `id` INT NOT NULL, `name` VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, ...
default_character_set=utf8mb4 [mysql] default_character_set=utf8mb4 [mysqld] character_set_server=utf8mb4 collation_server=utf8mb4_general_ci ``` 5. **远程访问配置**: 如果你需要允许远程...
mysql数据库报ERROR 1045 (28000): Access denied for user ‘ODBC’@’localhost’ (using password: NO) 看到网上说要配置my.ini ...default-character-set=utf8 [mysqld] #设置3306端口 port = 3
`例如`create database mydb character set utf8;`创建一个使用UTF8编码的数据库。 11. **修改数据库字符集**: `alter database 数据库名称 character set 字符集名称;`用于更改已存在数据库的字符集。 12. **...
2. **编码不一致**:考虑是否本地和服务器端的数据库编码设置不一致(均为UTF8)。 3. **版本不匹配**:猜测可能是由于版本差异导致的问题,即较高版本的数据无法在较低版本的数据库中导入(本地版本5.1.4,服务器...
default-character-set=utf8 [mysqld] # 设置 3306 端口 port = 3306 # 设置 MySQL 的安装目录 basedir= E:\mysql # 设置 MySQL 数据库的数据存放目录 datadir=E:\mysql\data # 允许最大连接数 max_...
- 示例:`ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4;` 9. **分区操作** - `ADD PARTITION (partition_definition)`: 添加分区。 - 示例:`ALTER TABLE sales ADD PARTITION (PARTITION p2 VALUES ...
标题中的“完美转换MySQL的字符集 解决查看utf8源文件中的乱码问题”涉及到的是在MySQL数据库中处理字符编码转换的问题,特别是针对从不同字符集(如GBK或Latin1)转换到UTF8的情况,以解决乱码问题。描述中提到的...
如果出现“unknown variable 'default-character-set=utf8'”的错误提示,说明配置格式有误。此时应将配置改为: ``` character_set_server=utf8 ``` 保存并退出编辑器,然后重启MySQL服务以应用更改。 在进行...