JDBC 连接数据库出现 Unknown initial character set index ‘255‘ received from server. Initial client characte

我使用的MySQL 8.0版本,原因貌似是由于默认字符集已从latin1改为了utf8mb4:

Character Set Support

Important Change: The default character set has changed from latin1 to utf8mb4. These system variables are affected:

The default value of the character_set_server and character_set_database system variables has changed from latin1 to utf8mb4.

The default value of the collation_server and collation_database system variables has changed from latin1_swedish_ci to utf8mb4_0900_ai_ci.

原代码

public class ConnectionTest {
    @Test
    public void testConnection() throws SQLException {
        Class class1 = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) class1.newInstance();
        //jdbc:mysql:协议
        //localhost: ip地址
        //3306: 默认mysql的端口号
        //test: test数据库
        String url = "jdbc:mysql://localhost:3306/test";
        //将用户名和密码封装在Properties中
        Properties info= new Properties();
        info.setProperty("user", "root");
        info.setProperty("password", "你自己的密码");
       Connection conn =  driver.connect(url,info);
        System.out.println(conn);
    }
}

报错:
java.sql.SQLException: Unknown initial character set index ‘255’ received from server. Initial client character set can be forced via the ‘characterEncoding’ property.

修改后代码

public class ConnectionTest {
    @Test
    public void testConnection() throws SQLException {
        Class class1 = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) class1.newInstance();
        //jdbc:mysql:协议
        //localhost: ip地址
        //3306: 默认mysql的端口号
        //test: test数据库
        String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";
        //将用户名和密码封装在Properties中
        Properties info= new Properties();
        info.setProperty("user", "root");
        info.setProperty("password", "你自己的sql密码");
       Connection conn =  driver.connect(url,info);
        System.out.println(conn);
    }
}

就可以解决了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值