mysql5.7 java读取乱码

在实习期间使用.net+sqlserver时未遇到编码问题,但使用java进行操作时遇到了clientconnectionresult不是utf8导致的乱码问题。通过setnamesutf8解决了编码设置问题,但在读取数据时仍然存在问题。最终发现旧数据存在编码问题,将所有测试数据重新insert后问题得到解决。

一直很自信自己编码格式设置的都没有问题,以前就算遇到也都很快找到问题并解决。没想到掉进了5.7的坑里。

这段时间实习,大多做的都是.net+sqlserver,确实不用操心这些问题。主要还是各自默认编码不同,java还真是“锻炼”人,(玩笑话)

1 show variables like 'character%';

发现client connection result怎么弄 都不变成utf8.

所以导致的问题就是,我在当前条件insert了一堆数据,在程序里读取的结果汉字都是乱码。而我从程序中最新插入的数据并读取出来都是没问题的。

但是,新插入的数据,直接从navicat中读取,又是乱码????

所以先解决了client connection result不是utf8的问题。

set names utf8;

这样执行后,除了files 编码格式都是utf8了。

不过这个时候 java读取数据还是有问题!依然乱码。只不过navicat上没问题了,无论是程序中插入数据还是navicat客户端插入数据,在java程序中和navicat客户端读取出来也都没问题。

所以怀疑旧数据有问题,把旧的测试数据 全部重新insert 问题解决。

 

转载于:https://www.cnblogs.com/tdws/p/5252334.html

### 配置 MySQL 5.7 的配置文件 在 CentOS 7 中安装 MySQL 5.7 后,默认情况下会有一个基本的配置文件 `/etc/my.cnf` 或者 `/etc/my.cnf.d/` 目录下的多个 `.cnf` 文件[^2]。 #### 查找默认配置文件位置 可以通过命令 `mysqld --verbose --help | grep -A 1 "Default options"` 来查看 MySQL 默认读取哪些配置文件及其路径。通常这些文件位于如下几个地方: - `/etc/my.cnf` - `/etc/mysql/my.cnf` - `/usr/local/mysql/etc/my.cnf` 对于大多数 Linux 发行版来说,在 CentOS 上主要是前两个选项之一[^4]。 #### 修改配置文件 为了调整 MySQL 行为,比如更改数据目录、字符集或者其他性能参数等,可以在上述提到的一个或多个配置文件中添加相应的设置项。常见的修改包括但不限于: - **改变数据存储路径** 如果想要把数据库的数据存放到另一个磁盘分区下,则需要编辑 `[mysqld]` 下面加入新的 datadir 参数指向新位置,并确保该目录存在且权限正确赋予给 mysql 用户。 ```ini [mysqld] datadir=/new/path/to/data ``` - **设定字符编码** 可以为整个服务器指定统一使用的字符集以及校对规则,防止乱码问题发生。 ```ini character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` 完成任何变更之后记得重启服务使改动生效: ```bash systemctl restart mysqld.service ``` 另外需要注意的是当更新了某些涉及安全性的配置(如 root 密码),可能还需要重新加载授权表来让变化立即起作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值