Spring 4.x遇到的连接数据库拒绝访问

使用了Spring JdbcTemplate连接数据库, 提示 ‘Access denied for user ‘lil’@’192.168.3.104’ (using password: YES)’ , 问题记录与解决

使用了两种方法连接数据库
使用Java读取properties配置文件读取数据库配置(没有使用spring情况下)
public static Connection getConnection() {
        InputStream db = JDBCUtil.class.getClassLoader().getResourceAsStream("db.properties");
        // 使用Properties类读取properties文件
        Properties properties = new Properties();
        Connection connection = null;
        try {
            properties.load(db);
            String driverClass = properties.getProperty("driverClass");
            String url = properties.getProperty("url");
            String user = properties.getProperty("user");
            String passWord = properties.getProperty("password");
            Class.forName(driverClass);
            connection = DriverManager.getConnection(url, user, passWord);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return connection;
    }

配置文件

driverClass = com.mysql.jdbc.Driver
url = jdbc:mysql://192.168.3.106/spring_data?characterEncoding=utf-8&useSSL=false
user = root
password = 123456

这样没有任何问题, 可以正常查询, 和保存数据.

使用Spring JdbcTemplate时, 异常如下(图片可以右键新标签打开, 打码的名字)

异常提示

百思不得其解之后, 我把配置文件改成了这样(前边加了一个前缀)

jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://192.168.3.106/spring_data?characterEncoding=utf-8&useSSL=false
jdbc.user = root
jdbc.password = 123456

竟然, 好了, 好了. 原因就是因为电脑系统把配置文件中的user识别成了我电脑的用户名, 所以加了一个前缀, 写成jdbc.user = root 问题就解决了, 自己写的DEMO, 记录一下(原创) .

猜你喜欢

转载自blog.csdn.net/qq_34033853/article/details/80640607