问题
使用jdbc连接mysql jdbc中url的IP之地为Host '192.168.43.1 访问数据库报错
java.sql.SQLException: null, message from server: “Host ‘192.168.43.1’ is not allowed to connect to this MySQL server”
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: java.sql.SQLException: null, message from server: "Host '192.168.43.1' is not allowed to connect to this MySQL server"
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1040)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at java.lang.reflect.Constructor.newInstance0(Native Method)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
2022-09-06 21:16:15.800 5164-5547/com.example.electronicmall W/System.err: at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:580)
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:218)
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall W/System.err: at com.example.electronicmall.Mapper.MYSQLDBOpenHelper.getConn(MYSQLDBOpenHelper.java:20)
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall W/System.err: at com.example.electronicmall.test.User.UserRegisterActivity$3.run(UserRegisterActivity.java:199)
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall W/System.err: at java.lang.Thread.run(Thread.java:929)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: java.sql.SQLException: null, message from server: "Host '192.168.43.1' is not allowed to connect to this MySQL server"
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1040)
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall I/QarthLog: [PatchStore] createDisableExceptionQarthFile
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall I/QarthLog: [PatchStore] create disable file for com.example.electronicmall uid is 10254
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at java.lang.reflect.Constructor.newInstance0(Native Method)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:580)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:218)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.example.electronicmall.Mapper.MYSQLDBOpenHelper.getConn(MYSQLDBOpenHelper.java:20)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at com.example.electronicmall.test.User.UserRegisterActivity$2.run(UserRegisterActivity.java:166)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall W/System.err: at java.lang.Thread.run(Thread.java:929)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall I/QarthLog: [PatchStore] createDisableExceptionQarthFile
2022-09-06 21:16:15.801 5164-5547/com.example.electronicmall E/AndroidRuntime: FATAL EXCEPTION: Thread-6
Process: com.example.electronicmall, PID: 5164
java.lang.NullPointerException: Attempt to invoke interface method 'java.sql.Statement java.sql.Connection.createStatement()' on a null object reference
at com.example.electronicmall.test.User.UserRegisterActivity$3.run(UserRegisterActivity.java:206)
at java.lang.Thread.run(Thread.java:929)
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall I/QarthLog: [PatchStore] create disable file for com.example.electronicmall uid is 10254
2022-09-06 21:16:15.801 5164-5546/com.example.electronicmall E/AndroidRuntime: FATAL EXCEPTION: Thread-5
Process: com.example.electronicmall, PID: 5164
java.lang.NullPointerException: Attempt to invoke interface method 'java.sql.Statement java.sql.Connection.createStatement()' on a null object reference
at com.example.electronicmall.test.User.UserRegisterActivity$2.run(UserRegisterActivity.java:170)
at java.lang.Thread.run(Thread.java:929)
2022-09-06 21:16:15.802 5164-5546/com.example.electronicmall I/Process: Sending signal. PID: 5164 SIG: 9
解决方案
1 打开控制面板
w
i
n
+
R
win+R
win+R
→
\rightarrow
→
c
m
d
cmd
cmd
2 登录到mysql
mysql -u root -p
3 检查数据库是否可用
use mysql;
4 查看host数据库
select host from user where user='root';
5 修改帐号不允许从远程登陆,只能在localhost(默认设置)。更改 “mysql” 数据库里的 “user” 表的 “host” 项,从"localhost"改为"%"
update user set host = '%' where user ='root';
6 刷新配置。
flush privileges;
具体操作过程如下图所示
原因
由于mysql默认设置为修改帐号不允许从远程登陆,只能在localhost端登录。因此需要更改 “mysql” 数据库里的 “user” 表的 “host” 项,从"localhost"改为"%"(%通配符 表示任何操作对象都可以操作数据库)
参考文献
is not allowed to connect to this mysql server
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈