今天在实际环境遇到了程序 找不到表,及jdbc入mysql库的时候,中文乱码问题。
1 . mysql默认是开启区分表的大小写的;
mysql> show variables like '%case%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
+------------------------+-------+
2 rows in set (0.00 sec)
可以在 /ect/my.cnf 里面添加,然后重启mysql.
lower_case_table_names=1 (1是不区分,0为区分)
但是至于是修改库配置,还是让程序都改成小写,请自行评估影响。
2 . 之后有遇到了 往mysql库里插入数据的时候,中文乱码。在数据库机器上测试,手动插入一条含中文的测试数据,入库及显示正常。但是程序发起的就是乱码。 检查程序配置:
jdbc:mysql://127.0.0.1:3306/databaseName?useUnicode=true&characterEncoding=utf8
后面的use unicode 和 encoding加上配置,入库即正常。