• 连接数据库时username冲突


    在连接数据库时遇到的问题:Access denied for user 'ccccccc'@'localhost' (using password: YES)

    测试连接MyTest:

    public class MyTest {
        public static void main(String[] args) throws SQLException {
            ApplicationContext context = new ClassPathXmlApplicationContext("database.xml");
            DruidDataSource dataSource = context.getBean("dataSource", DruidDataSource.class);
            System.out.println(dataSource.getConnection());
        }
    }
    

    配置的database.xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
        <!--加载外部配置文件
    		在加载外部依赖文件的时候需要context命名空间
    	-->
        <context:property-placeholder location="classpath:dbConfig.properties"/>
    
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="username" value="${username}"></property>
            <property name="password" value="${password}"></property>
            <property name="url" value="${url}"></property>
            <property name="driverClassName" value="${driverClassName}"></property>
         </bean>
    </beans>
    

    产生的异常:

    严重: create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useSSL=false, errorCode 1045, state 28000
    java.sql.SQLException: Access denied for user 'ccccccc'@'localhost' (using password: YES)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
    	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1714)
    	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224)
    	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2199)
    	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230)
    	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025)
    	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778)
    	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
    	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
    	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
    	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
    	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2753)
    
    

    dbConfig.properties文件修改前:

    username=root
    password=123456
    url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useSSL=false
    driverClassName=com.mysql.jdbc.Driver
    

    dbConfig.properties文件修改后:

    jdbc.username=root
    password=123456
    url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useSSL=false
    driverClassName=com.mysql.jdbc.Driver
    

    xml文件也需修改:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
        <!--加载外部配置文件
    		在加载外部依赖文件的时候需要context命名空间
    	-->
        <context:property-placeholder location="classpath:dbConfig.properties"/>
    
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="username" value="${jdbc.username}"></property>
            <property name="password" value="${password}"></property>
            <property name="url" value="${url}"></property>
            <property name="driverClassName" value="${driverClassName}"></property>
         </bean>
    </beans>
    

    产生问题的原因:这是和主机名称username产生冲突了,修改即可

    com.mysql.jdbc.JDBC4Connection@4b9e255
    
  • 相关阅读:
    nullptr 与 null
    nullptr 与 null
    UNREFERENCED_PARAMETER 的作用
    Kali-Linux无线网络渗透测试-李亚伟-第3章-监听WiFi网络--虚拟机使用无线网卡
    探寻Linux背后的“美丽心灵”——Linux创始人Linus Torvalds访谈录
    Angular2(Beta)入门
    angular2 will be kiiled by react in the future?
    《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)前言
    Angular vs React – so which do I chose?
    2015-2016前端知识体系
  • 原文地址:https://www.cnblogs.com/netu/p/14320978.html
Copyright © 2020-2023  润新知