带有 MariaDB 的 Spring Boot:驱动程序尚未从服务器收到任何数据包
SpringBoot with MariaDB: The driver has not received any packets from the server
我有一个 MariaDB,当与 sequel Pro 连接时,我使用此凭据并且可以连接
我用的是SpringBoot
spring.datasource.url=jdbc:mysql://172.105.50.55:3306/pradera_db
spring.datasource.username=pradera_usr
spring.datasource.password=Mddejh847h$#@
但是我有这个错误:
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:402)
at java.base/java.net.Socket.connect(Socket.java:591)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
... 81 common frames omitted
2020-05-31 12:30 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2020-05-31 12:30 [restartedMain] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
这是pom.xml中的依赖:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
试试这个作为连接字符串:
spring.datasource.url=jdbc:mysql://172.105.50.55:3306/pradera_db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
pom.xml :
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
在 运行 你的数据库的机器上添加你的 ip 作为端口 3306 上允许的连接
Linux:
iptables -I INPUT -p tcp -s your.ip.address.here --dport 3306 -j ACCEPT
Windows:
打开开始菜单,在搜索栏中输入:Windows防火墙,打开左侧高级设置,select入站规则,点击右侧新建规则按钮,Select端口,点击下一步, select tcp 并指定端口 3306,按下一步,允许连接,然后通过 selecting Domain, private, public 并为规则本身选择一个名称来完成。
检查服务是否 运行 和 enable/start 它。
Linux:
sudo systemctl status mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb
Windows:打开开始菜单,搜索Services.msc,在服务选项卡中找到您的mariadb服务并通过右键单击它来修改它的状态.
希望对您有所帮助。
我有一个 MariaDB,当与 sequel Pro 连接时,我使用此凭据并且可以连接
我用的是SpringBoot
spring.datasource.url=jdbc:mysql://172.105.50.55:3306/pradera_db
spring.datasource.username=pradera_usr
spring.datasource.password=Mddejh847h$#@
但是我有这个错误:
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:402)
at java.base/java.net.Socket.connect(Socket.java:591)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
... 81 common frames omitted
2020-05-31 12:30 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2020-05-31 12:30 [restartedMain] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
这是pom.xml中的依赖:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
试试这个作为连接字符串:
spring.datasource.url=jdbc:mysql://172.105.50.55:3306/pradera_db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
pom.xml :
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
在 运行 你的数据库的机器上添加你的 ip 作为端口 3306 上允许的连接
Linux:
iptables -I INPUT -p tcp -s your.ip.address.here --dport 3306 -j ACCEPT
Windows: 打开开始菜单,在搜索栏中输入:Windows防火墙,打开左侧高级设置,select入站规则,点击右侧新建规则按钮,Select端口,点击下一步, select tcp 并指定端口 3306,按下一步,允许连接,然后通过 selecting Domain, private, public 并为规则本身选择一个名称来完成。
检查服务是否 运行 和 enable/start 它。
Linux:
sudo systemctl status mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb
Windows:打开开始菜单,搜索Services.msc,在服务选项卡中找到您的mariadb服务并通过右键单击它来修改它的状态.
希望对您有所帮助。