الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في الاتصال بقاعدة بيانات MySql على سرفر خارجي

بدأه Ph-RevIng في 15 يونيو 2012 · 6 رد · 920 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي قاعدة بيانات 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)

ملاحضة : الباس موجود فقط ازلته من الكود لاسباب امنية.

شكرا لكم.

تم تعديل هذه المشاركة بواسطة Ph-RevIng في 15 يونيو 2012 في 20:55

#2

السلام عليكم ...

اقتباس
ولدي سكربت عملته بالـphp موضوع بنفس السرفر يتعامل مع هده القاعدة بشكل عادي

جربت الاتصال بها عن طريق الـphp من على جهازي ولم يتم الاتصال, لكن الخطأ هنا كان انه تم استهلاك الوقت الكافي للاتصال وهو 30 تانية

معظم مخدمات الــ mysql تكون إعداداتها بأنها تسمح فقط للأتصال الداخلي .. أي من داخل السيرفر .... و تمنع الاتصال من خارجها أي تمنع الــ remote access

يمكن تغير الأعدادات في الملف my.ini كما هو موضح في How Do I Enable Remote Access To MySQL Database Server? رابط

أذا كانت إحدى الخطوات غير واضحة , فلا تترد بالسؤال عنها ..

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 15 يونيو 2012 في 21:35

2

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

دائما ما يكون الServer الخاص بالـ Mysql

لا تستخدم الـ root الا فالاتصال عن طريق نفس الجهاز

لكن يمكنك انشاء مستخدم جديد وتعطيه الصلحيات

وبالتالى يمكنك التجربه مره اخرى وان شاء الله سوف تعمل

2

Software Developer
Mahmoudkelany.com


 

#4

شكرا لاستجابتكم

على فكرة السرفر ويندوز والموضوع يتكلم عن اللنكس

هل توجد خاصية في ملف php.ini تسمح بالاتصال عن بعد تكون off

ادا كان نعم فما اسمها كي ابحت عنها

بخصوص اضافة يوزر من PhpMyAdmin فهل من موضوع يشرح هده العملية

شكرا لكم

تم تعديل هذه المشاركة بواسطة Ph-RevIng في 16 يونيو 2012 في 01:28

#5
Ph-RevIng كتب:

شكرا لاستجابتكم

على فكرة السرفر ويندوز والموضوع يتكلم عن اللنكس

هل توجد خاصية في ملف php.ini تسمح بالاتصال عن بعد تكون off

ادا كان نعم فما اسمها كي ابحت عنها

بخصوص اضافة يوزر من PhpMyAdmin فهل من موضوع يشرح هده العملية

شكرا لكم

لا اجد فالكلام ما يحدد نوع نظام التشغيل الذى يعمل عليه السيرفر خالص

لا يمكنك الاتصال بالسيرفر عندما يكون off

بخصوص اضافه يوزر للـ phpmyadmin الموضوع سهل وسوف اقوم بشرحه لك

1

Software Developer
Mahmoudkelany.com


 

#6
Ph-RevIng كتب:

بخصوص اضافة يوزر من PhpMyAdmin فهل من موضوع يشرح هده العملية

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 16 يونيو 2012 في 12:54

1

Software Developer
Mahmoudkelany.com


 

#7

شكرا لك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…