无法获取jdbc连接

rsaldnfx  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(429)

我正在eclipse中制作一个简单的雇员测试文件。但它显示了一个错误,即无法获取jdbc连接。请帮帮我。
错误是

Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client

xmlfile是

<?xml version="1.0" encoding="UTF-8"?>
<bean
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"
    name="dataSource" p:driverClassName="com.mysql.jdbc.Driver"
    p:url="jdbc:mysql://localhost/mydb" p:username="root"
    p:password="banjit" />
<bean class="org.springframework.jdbc.core.JdbcTemplate"
    name="jdbcTemplate" p:dataSource-ref="dataSource" />

java代码是

public class Test {
    public static void main(String[] args) {
        ApplicationContext context =new ClassPathXmlApplicationContext("com/banjit/spring/springjdbc/refconfig.xml");
        JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate");
        String sql = "insert into employee values (?,?,?)";
        int result = jdbcTemplate.update(sql, new Integer(1), "Banjit","Das");
        System.out.println("Numbers of records inserted  "+result);
    }
}
eufgjt7s

eufgjt7s1#

为了解决这个问题,首选的解决方案是将所有客户端程序升级为使用4.1.1或更高版本的客户端库。如果不可能,请使用以下方法之一:
1) 要使用4.1以前版本的客户端程序连接到服务器,请使用仍然具有4.1以前版本的密码的帐户。
2) 为需要使用4.1版之前的客户端程序的每个用户将密码重置为4.1版之前的样式。这可以使用set password语句和old_password()函数完成:

mysql> SET PASSWORD FOR
    -> 'user'@'host' = OLD_PASSWORD('new_password');

相关问题