No database selected 1046 错误与没有服务器建立SSL警告

本文详细解析了在数据库URL中添加`useUnicode=true&characterEncoding=UTF-8`的重要性。该配置确保客户端以UTF-8编码发送数据到服务端,防止乱码问题。当数据库编码格式与配置不一致时,可能会导致数据乱码。建议保持两者一致以保证数据的正确显示。了解这一配置能有效避免在数据库操作中遇到的字符编码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
原因:
URL中没有指定数据库名称。debug时候不仅查询函数。
在这里插入图片描述
URL中添加useUnicode=true&characterEncoding=UTF-8的作用
首先查看数据库编码格式:
在这里插入图片描述
useUnicode=true 后面的配置 characterEncoding配置才能生效

characterEncoding=utf-8的配置的作用主要配置的是mysql服务端的编码,mysql驱动的代码中,会将将要发送mysql服务端的sql使用characterEncoding指定的值进行转码,然后将转码后的字节发送到mysql服务端

结论

  1. useUnicode=true&characterEncoding=utf-8 主要配置的客户端发送数据到服务端时候,需要转换成什么样的编码发送给服务端

  2. 客户端接收到的数据不会出现乱码,有一个前提,就是数据库中的数据编码没有错误的情况下

建议

官方也建议我们characterEncoding这个值的配置尽量与mysql服务端的编码一致

如果不一致,会导致我们看到的结果出现乱码

例如: mysql服务端的编码为UTF-8 而这个时候我们配置了 useUnicode=true&characterEncoding=gbk

那么如果我们这时候插入了一条带有中文的数据,则此时mysql中的此中文数据为gbk的

然后我这时候查询这条数据,mysql会将gbk的数据返回给我们,但告诉我们说 这个是UTF-8编码的,这个时候mysql驱动包就会用UTF-8的编码去解码这段数据,这时候则会出现乱码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值