نمایش نتایج 1 تا 8 از 8

نام تاپیک: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

  1. #1
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

    Cool اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    سلام
    یه برنامه دارم که با پورت ۲۰۸۳ به پایگاه داده MySQL وصل میشه و مشکل من اینجاست که اگه با اینترنت شبکه های عمومی مثلا دانشگاه یا لابی هتل یا ... کار کنیم این برنامه دچار مشکل میشه چون در بیشتر این شبکه های عمومی پورت ۲۰۸۳ رو می بندند. از چه روشی استفاده کنم که با این پورت کاری نداشته باشم. آیا این امکان وجود دارد که من یه فایل با یه زبان مثلا PHP و یا ASP روی هاست قرار بدم و با #C به این فایل دستورات لازم رو بدم و این فایل این دستورات رو به MySQL بده و اگه نیازی بود اطلاعات لازم رو از MySQL بگیره و به برنامه تحت ویندوز من که با زبان #C هست برسونه؟
    (فکر کنم اگر بشه از این روش استفاده کرد امنیت کارم هم بالاتر میره)
    راستی هاست من لینوکس هست و چون از هاست های مشترک استفاده می کنم و روی این هاست ها برنامه لازم نصب نیست فکر نکنم بتونم از فایلی با زبان ASP استفاده کنم.

    اگر نمونه برنامه ای که بتونه شبیه این کار رو انجام بده می دیدم خیلی عالی می شد.
    آخرین ویرایش به وسیله krasus : شنبه 10 خرداد 1393 در 17:58 عصر




  2. #2

    نقل قول: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    سلام
    دوست عزیز شبکه های عمومی که دسترسی به پورت مای اس کیو ال ندارند که ببندند اما با توجه به مشکلی که میگین امکان داره برای امنیت، فقط ای پی های خاصی به این پورت دسترسی داشته باشند که با ارسال درخواست پشتیبانی می تونید این مشکل رو برطرف کنید.
    اما راه امن تر و مطمئن تر که امکانات بیشتری هم در اختیارتون قرار میده همون روشیه که گفتین یعنی استفاده از وب سرویس که شما یک وب سرویس با زبان پی اچ پی بر روی هاست دارید و با سی شارپ با اون وب سرویس ارتباط برقرار می کنید.
    موفق باشید

  3. #3
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

    نقل قول: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    نقل قول نوشته شده توسط h.soltani1333 مشاهده تاپیک
    سلام
    دوست عزیز شبکه های عمومی که دسترسی به پورت مای اس کیو ال ندارند که ببندند اما با توجه به مشکلی که میگین امکان داره برای امنیت، فقط ای پی های خاصی به این پورت دسترسی داشته باشند که با ارسال درخواست پشتیبانی می تونید این مشکل رو برطرف کنید.
    اما راه امن تر و مطمئن تر که امکانات بیشتری هم در اختیارتون قرار میده همون روشیه که گفتین یعنی استفاده از وب سرویس که شما یک وب سرویس با زبان پی اچ پی بر روی هاست دارید و با سی شارپ با اون وب سرویس ارتباط برقرار می کنید.
    موفق باشید
    از این که وقت گذاشتین و پاسخ دادین ممنونم آخه این چند وقت هر چی تاپیک قرار می دم و سوال می پرسم کسی جواب نمی ده.(امید وارم سوالام چرت و پرت نباشه)
    اما در مورد جواب شما فکر کنم بهتر باشه این رو هم بگم که برای اتصال به هاست و سی پنلم از طریق همین شبکه های عمومی تنها راهی که پیدا کردم استفاده از مرورگر و دامین هست. یعنی اگر در مرورگر آی پی هاست و پورت 2083 رو وارد کنیم نمی تونیم CPanel رو ببینیم اما اگر در آدرس url عبارت cpanel.myDomain.com را وارد کنم می تونم وارد CPanel بشم و بعدش وارد MySQL بشم و هر کوئری که خواستم به MySQL بدم. این یعنی هر آی پی ای باز هست اما هر پورتی باز نیست.(همون طور که گفتم مثلا از طریق پورت ۸۰ میشه هر کاری کرد اما از طریق مرور گر)
    حالا می خواستم بدونم میشه کانکشن استرینگ برنامه رو جوری تغییر داد که بشه از راهی که گفتم (استفاده از دامین و پورت ۸۰) برنامه رو به MySQL وصل کرد؟

  4. #4

    نقل قول: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    طوری که من متوجه شدم این پورتی که میگین پورت مای اس کیو ال نیست پورت مای اس کیو ال در اکثر مواقع 3306 هست که معمولا هم کسی اون رو تغییر نمیده.
    من نمی دونم شما از چه روشی برای اتصال به مای اس کیو ال استفاده می کنید(اگه امکان داره روشتون رو توضیح بدید) اما بهتره از MySQL Connector Net که در سایت مای اس کیو ال موجود هست استفاده کنید که بسیار ساده هست فقط کافیه بعد از نصب کامپوننت MySql.Data.dll رو به رفرنس هاتون اضافه کنید و با استفاده از کانکشن استرینگ زیر به مای اس کیو ال متصل بشین.(البته با ارسال درخاست پشتیبانی از باز بودن پورت مای اس کیو ال مطمئن شوید)
    using MySql.Data.MySqlClient;
    MySqlConnection con = new MySqlConnection("server=127.0.0.1; port=3306; database=dbName; uid=root; password=");

  5. #5
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

    نقل قول: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    نقل قول نوشته شده توسط h.soltani1333 مشاهده تاپیک
    طوری که من متوجه شدم این پورتی که میگین پورت مای اس کیو ال نیست پورت مای اس کیو ال در اکثر مواقع 3306 هست که معمولا هم کسی اون رو تغییر نمیده.
    من نمی دونم شما از چه روشی برای اتصال به مای اس کیو ال استفاده می کنید(اگه امکان داره روشتون رو توضیح بدید) اما بهتره از MySQL Connector Net که در سایت مای اس کیو ال موجود هست استفاده کنید که بسیار ساده هست فقط کافیه بعد از نصب کامپوننت MySql.Data.dll رو به رفرنس هاتون اضافه کنید و با استفاده از کانکشن استرینگ زیر به مای اس کیو ال متصل بشین.(البته با ارسال درخاست پشتیبانی از باز بودن پورت مای اس کیو ال مطمئن شوید)
    using MySql.Data.MySqlClient;
    MySqlConnection con = new MySqlConnection("server=127.0.0.1; port=3306; database=dbName; uid=root; password=");
    دقیقا همین کاری که شما فرمودید رو انجام می دم (استفاده از
    MySql.Data.dll
    ) و برنامه به خوبی کار می کنه اما زمانی که تو سایت دانشگاه کار می کنم برنامم ارور میده و میگه که چنین MySQL ای پیدا نمی کنه.
    اینم نمونه کانکشن استرینگ من :
    host=MyDomain.ir; user = username; password = #########; database=DatabaseName;
    همون طور که می بینید من از اسم دامین هاست به جای آی پی استفاده کردم اما باز هم مشکلم پا برجاست.

    در حال حاضر دارم سعی می کنم یه پروژه سی شارپ رو به یه فایل وب سرویس PHP وصل کنم. اما وقتی add web reference رو می زنم پروژه نمی تونه تابعی رو توی وب سرویس من پیدا کنه ، در حالی که با یه فایل php دیگه از همین وب سرویس استفاده کردم.
    اینم کد وب سرویس php :



    <?php
    // Simple Method get 1 parameter and return with Hello
    function AddHello($name)
    {
    return "Hello $name";
    }
    // Create SoapServer object using WSDL file.
    // For the simplicity, our SoapServer is set to operate in non-WSDL mode. So we do not need a WSDL file
    $server = new SoapServer(null, array('uri'=>'http://localhost/hello'));
    // Add AddHello() function to the SoapServer using addFunction().
    $server->addFunction("AddHello");
    // To process the request, call handle() method of SoapServer.
    $server->handle();
    ?>


  6. #6

    نقل قول: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    متاسفانه من با پی اچ پی آشنایی ندارم اما به احتمال زیاد مشکل از کدهای پی اچ پی تون هست امیدوارم تا دوستان دیگه که آشنایی دارن پاسختون رو بدن و مشکلتون حل بشه.

  7. #7
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

    نقل قول: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    نقل قول نوشته شده توسط h.soltani1333 مشاهده تاپیک
    متاسفانه من با پی اچ پی آشنایی ندارم اما به احتمال زیاد مشکل از کدهای پی اچ پی تون هست امیدوارم تا دوستان دیگه که آشنایی دارن پاسختون رو بدن و مشکلتون حل بشه.
    نه عزیز جان من که گفتم با یه فایل php دیگه از همین وب سرویس استفاده کردم و جواب گرفتم یعنی وب سرویسم سالمه. علت این که این کدها رو اینجا نوشتم این بود که اگر کسی که این مطلب خوند به php آشنا بود از بابت درستی وب سرویس خیالش رو راحت کرده باشم.

  8. #8

    نقل قول: اتصال برنامه تحت ویندوز به MySQL با استفاده از پورتی غیر از پورت 2083

    نقل قول نوشته شده توسط krasus مشاهده تاپیک
    دقیقا همین کاری که شما فرمودید رو انجام می دم (استفاده از
    MySql.Data.dll
    ) و برنامه به خوبی کار می کنه اما زمانی که تو سایت دانشگاه کار می کنم برنامم ارور میده و میگه که چنین MySQL ای پیدا نمی کنه.
    اینم نمونه کانکشن استرینگ من :
    host=MyDomain.ir; user = username; password = #########; database=DatabaseName;
    همون طور که می بینید من از اسم دامین هاست به جای آی پی استفاده کردم اما باز هم مشکلم پا برجاست.

    در حال حاضر دارم سعی می کنم یه پروژه سی شارپ رو به یه فایل وب سرویس PHP وصل کنم. اما وقتی add web reference رو می زنم پروژه نمی تونه تابعی رو توی وب سرویس من پیدا کنه ، در حالی که با یه فایل php دیگه از همین وب سرویس استفاده کردم.
    اینم کد وب سرویس php :



    <?php
    // Simple Method get 1 parameter and return with Hello
    function AddHello($name)
    {
    return "Hello $name";
    }
    // Create SoapServer object using WSDL file.
    // For the simplicity, our SoapServer is set to operate in non-WSDL mode. So we do not need a WSDL file
    $server = new SoapServer(null, array('uri'=>'http://localhost/hello'));
    // Add AddHello() function to the SoapServer using addFunction().
    $server->addFunction("AddHello");
    // To process the request, call handle() method of SoapServer.
    $server->handle();
    ?>

    سلام و درود.
    من خودم php کار نیستم ولی تقریبا با php آشنا هستم.
    شما بایستی برای اینکه متدها رو در برنامه ی دستاپی یا هر چیز دیگه داشته باشید یک فایل wsdl بسازید (قابل فهم برای تمام زبانهای برنامه نویسی )
    من تو انجمن ایران دلفی در این مورد بحث کردم ولی باز هم اینجا تکرار میکنم.
    اگه دوست داشتید میتونید به این پست مراجعه کنید :http://www.irandelphi.ir/%D8%AF%D9%8...%81%DB%8C.html
    1. هاستینگ رو متقائد کنیم تا امکان ریموت رو فعال کنه ، این میتونه برای یک ip خاص باشه و یا برای All IP ...
    اگر برای تمام ip ها باشه که خوب کارمون راحته و فقط با استفاده از کامپوننت هایی همچون uni Dac ارتباط به دیتابیس رو تجربه میکنیم.
    اگر هم قرار باشه که فقط بشه برای یک ip خاص باشه که فقط در صورتی قابل اجرا خواهد بود که شما بخواهید از یک هاست به هاست دیگری یا از یک سرور با ip valid به هاست متصل بشید .
    2.در روش دوم شما میتونید با php یا هر زبان دیگری یک وب سرویس طراحی کرده و در دلفی اون رو import و اتصال رو انجام دهید که دردسرهای خاص خودش رو داره .
    در اینجا من میخوام بعنوان مثال با استفاده از soap به دیتابیس روی هاست کانکت شده و تایید اتصال رو با وارد کردن نام کاربری و پسورد و نام دیتابیس مورد نظر بگیرم.
    اگر اتصال انجام شد تایید میشه و در غیر اینصورت ارور میده .
    ابتدا فایل wsdl مورد نظر که بایستی با نام test.wsdl ذخیره شود رو ایجاد کردم.



    <?xml version ='1.0' encoding ='UTF-8' ?>
    <definitions
    name='AfterAction'
    targetNamespace='urn:AfterAction'
    xmlns:typens='urn:AfterAction'
    xmlns:xsd='http://www.w3.org/2001/XMLSchema'
    xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
    xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
    xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
    xmlns='http://schemas.xmlsoap.org/wsdl/'>
    <message name='connect'>
    <part name='db_name' type='xsd:string' />
    <part name='db_user' type='xsd:string' />
    <part name='db_pass' type='xsd:string' />
    </message>
    <message name='connect_answer'>
    <part name='return' type='xsd:string' />
    </message>
    <portType name='AfterActionPort'>
    <operation name='connect'>
    <input message='typens:connect' />
    <output message='typens:connect_answer' />
    </operation>
    </portType>
    <binding name='AfterActionBinding' type='typens:AfterActionPort'>
    <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http' />
    <operation name='connect'>
    <soap:operation soapAction='urn:AfterActionAction' />
    <input>
    <soap:body use='encoded' namespace='urn:AfterAction'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' />
    </input>
    <output>
    <soap:body use='encoded' namespace='urn:AfterAction'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' />
    </output>
    </operation>
    </binding>
    <service name='AfterActionService'>
    <port name='AfterActionPort' binding='typens:AfterActionBinding'>
    <soap:address location='http://localhost/soap/server.php' />
    </port>
    </service>
    </definitions>



    در مرحله ی دوم فایل server.php که در واقع در اون متد مربوط به اتصال به دیتابیس قرار داره رو قرار میدم.


    <?php
    function connect($db_name,$db_user,$db_pass)
    {
    mysqli_connect("localhost",$db_user,$db_pass,$db_n ame);

    if (mysqli_connect_errno())
    {
    return mysqli_connect_error();
    }
    else
    {
    return 'connection is ok';
    }
    }
    $server = new SoapServer('test.wsdl');
    $server->addFunction('connect');
    $server->handle();
    ?>




    حالا کافیه برای ارتباط با این فایلها اونها رو در هاست یا لوکال هاست مورد نظر بریزم و از طریق دلفی اون رو import بکنم.
    فقط دو نکته ی زیر رو حتما رعایت کنید.
    1.در فایل wsdl اون خطی که آدرس مربوط به فایل server.php رو نوشته رو مطابق با سرور خودتون اصلاح کنید.
    2.برای import این وب سرویس آدرس رو به این فرمت وارد نمایید. http://localhost/soap/server.php?wsdl
    باز هم تاکید میکنم که بایستی آدرس رو مطابق با آدرس قسمتی که در اونجا فایلهاتون آپلود میشه تنظیم بکنید
    آخرین ویرایش به وسیله aboualfazl : شنبه 21 تیر 1393 در 01:17 صبح

تاپیک های مشابه

  1. سوال: اتصال برنامه تحت VB6 به دیتابس MySQL در سیستم های تحت شبکه
    نوشته شده توسط Irandoost در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 0
    آخرین پست: سه شنبه 13 اسفند 1392, 11:33 صبح
  2. سوال: استفاده از Web Service در برنامه تحت ویندوز
    نوشته شده توسط gilas1368 در بخش C#‎‎
    پاسخ: 8
    آخرین پست: جمعه 01 شهریور 1392, 14:13 عصر
  3. حرفه ای: اتصال یه برنامه تحت ویندوز به یه دیتابیس mysql تحت وب
    نوشته شده توسط haghft در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 07 اسفند 1389, 20:41 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •