السلام عليكم
لدي قاعدة بيانات Mysql موضوعة على السرفر الخاص بالشركة ويحمل ip تابت يعني يمكن الوصول له عبر النت
http://41.141.249.92:81/phpMyAdmin/
اردت الاتصال بقاعدة البيانات عبر java فاعطاني خطأ في الاتصال
الكود الدي استعمله :
package basededonnés;
import java.sql.*;
public class Main {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String db = "petrom";
String url = "jdbc:mysql://41.141.249.92/"+db;
Connection cn = DriverManager.getConnection(url, "root", "");
System.out.println("Connected ....");
}catch (ClassNotFoundException e){
System.out.println("Erreure de Driver");
}catch (SQLException a){
a.printStackTrace();
}
}
}الـIP صحيح البورت صحيح اليوزر والباس صحيحين
ولا يوجد جدار ناري على السرفر
ولدي سكربت عملته بالـphp موضوع بنفس السرفر يتعامل مع هده القاعدة بشكل عادي
جربت الاتصال بها عن طريق الـphp من على جهازي ولم يتم الاتصال, لكن الخطأ هنا كان انه تم استهلاك الوقت الكافي للاتصال وهو 30 تانية
Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\conenct.php on line 11
الخطأ :
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Ph-reving\Mes documents\NetBeansProjects\Basededonnés\build\classes
compile:
run:
com.mysql.jdbc.exceptions.jdbc4.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.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:348)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2391)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2428)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2213)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:797)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at basededonnés.Main.main(Main.java:17)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:218)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:257)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:298)
... 15 more
BUILD SUCCESSFUL (total time: 25 seconds)ملاحضة : الباس موجود فقط ازلته من الكود لاسباب امنية.
شكرا لكم.