大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说java换成ip访问数据库无法访问_sqlserver不能用ip登录,希望您对编程的造诣更进一步.
一.错误现象
1.1 问题描述
springboot使用双数据源:本意是从第一个数据库中查询导数据然后加入另外一个数据库,代码一切正常后运行结果如下报错,
仔细一排查发现数据是查询到的,说明是入数据的库出问题了,结果发现我之前连接的时候是用‘localhost‘去连接的,在项目中配置成ip就不行了,
从报错中的意思就是安装了数据库的服务器不允许部署项目的服务器进行远程连接。也就是权限问题,修改权限就可以了。
spring.datasource.db2.jdbc-url=jdbc:mysql://192.168.95.2:3306/app_database?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.db2.username=root spring.datasource.db2.password=admin spring.datasource.db2.driver-class-name=com.mysql.jdbc.Driver
代码100分
代码100分[{password=app_manage, is_enable=1, account_name=系统管理员, id=1, account=appmanage}] [DEBUG] 2020 七月 16 17:09:52 -->[SqlSessionUtils.java:97] Creating a new SqlSession [DEBUG] 2020 七月 16 17:09:52 -->[SqlSessionUtils.java:148] SqlSession [[email protected]] was not registered for synchronization because synchronization is not active [INFO ] 2020 七月 16 17:09:52 -->[HikariDataSource.java:110] HikariPool-2 - Starting... [WARN ] 2020 七月 16 17:09:52 -->[DriverDataSource.java:68] Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation. [ERROR] 2020 七月 16 17:09:53 -->[HikariPool.java:574] HikariPool-2 - Exception during pool initialization. java.sql.SQLException: null, message from server: "Host ‘PCMICRO-D7ND2F2‘ is not allowed to connect to this MySQL server" at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)
1.2 解决办法
找到数据库默认就有的user表,这个可以通过工具找,因为我的远程连接工具是Navicat,user表就在这里
比如我这里项目用的用户名是root,默认只允许使用localhost连接,那么就把”localhost”的Host改成%,就可以了,之后还要执行一下执行刷新权限:flush privileges(它的执行就像sql语句一样执行就可以了);
1.3 步骤也可以这样操作:
在mysql的bin目录下执行:mysql -u root -p 密码 登陆到数据:
执行use mysql;
select host,user from user;
可以看到user为root,host为localhost的话,说明mysql只允许本机连接,那么外网,本地软件客户端就无法连接了。
调整方法:
执行:update user set host=‘%‘ where user =‘root‘;
执行刷新权限:flush privileges;
可以测试外网连接mysql服务器。
java换成ip访问数据库无法访问
原文地址:https://www.cnblogs.com/KdeS/p/13323809.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7361.html