PDA

View Full Version : ارتباط Asp.Net با Mysql روی سرور لینوکسی



cameloss
پنج شنبه 27 فروردین 1388, 02:22 صبح
سلام به همه اساتید محترم.
من توی یه برنامه که با C#.Net نوشتم نیاز دارم به یه پایگاه MySql که روی سرور لینوکسی نصب هستش ارتباط برقرار کنم. دو تا مسئله برام مطرحه:
1- اصلا میشه این کارو کرد یا نه؟ برنامه ام رو یه هاست ویندوز مثل همه برنامه های دات نت نصب میشه، اما نمیدونم میشه با لینوکس ارتباط برقرار کرد یا نه؟
2- اگه میشه، آیا راه خاصی وجود داره یا نه مثل ارتباط با MySql توی ویندوز هستش؟
فعلا دارم تحقیق می کنم، از چند روز دیگه کار رو شروع می کنم، نتایجی که گرفتم رو حتما برای استفاده بقیه دوستان اینجا قرار میدم. فعلا اگه کسی تجربه این کار رو داره یا نکته ای به نظرش میرسه، خوشحال و ممنون میشم در اختیارم بذاره و البته حتما جبران می کنم.

حامد مصافی
پنج شنبه 27 فروردین 1388, 09:09 صبح
به این منظور باید MySQL Connector/Net را از این لینک دانلود (http://dev.mysql.com/downloads/dotnet.html) و روی سرور نصب کنید.
سپس ConnectionString شما باید چیزی مثل این باشد.


DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=Your_Mysql_DB; UID=mysql_username; PASSWORD=mysql_password;

cameloss
پنج شنبه 27 فروردین 1388, 20:18 عصر
مرثی عزیزم.
یه سوال : تو ConnectionString باید به جای Server=localhost اسم سرور لینوکسی که MySql روش نصبه بدم دیگه؟ یا نه همین localhost ؟

حامد مصافی
شنبه 29 فروردین 1388, 09:21 صبح
دقیقاً، نام سرور میزبان دیتابیس را باید قید کنید.

cameloss
یک شنبه 06 اردیبهشت 1388, 03:26 صبح
دوست خوبم BlackDal (http://barnamenevis.org/forum/member.php?u=6808) سلام دوباره.
من رفتم تو اون لینکی که لطف کردی و دادی، دو تا فایل دانلود بود، یه دونه یه exe ویندوز بود که تازه گرفتم و هنوز باهاش ور نرفتم ولی فکر کنم یه پرووایدر باشه، یه دونه هم سه تا فایل داشت، البته exe و ویندوزی که به علت تحریم ناجوانمردانه آمریکای جهانخوار، نتونستم بگیرم، باید بگم برام بفرستن، من فکر کردم شما فرمودی که MySQL Connector/Net رو باید رو لینوکسم نصب کنم، منظورتون همین بود؟ اینا که ویندوزین، من گیج شدم، زحمت میشه برات ولی خواهش دارم ازت یه توضیح کامل برام بنویسی، تا حالا با MySql کار نکردم تازه از نوع لینوکسیش، تقریبا 20 روز دیگه هم باید پروژه رو تحویل بدم، واقعا وقت ندارم که بیفتم دنبالش برای یاد گرفتن، وگرنه انقدر مزاحم شما نمیشدم. اگه اشکالی نداره، شمارتون رو برام بفرستی، زنگ میزنم بهتون. ادرس ایمیلم: PayaRay@live.com و cameloss@gmail.com هستن. مزاحم میشم، ولی منتظر شماره تونم. شرمنده.:خجالت:
پاینده، پیروز و سرفراز میخواهم تان. یزدان نگه دارتان.

حامد مصافی
یک شنبه 06 اردیبهشت 1388, 10:23 صبح
MySQL Connector/Net را روی سیستم کلاینت (ویندوز شما) و در کنار برنامه اجرایی نصب کنید.

cameloss
دوشنبه 07 اردیبهشت 1388, 06:38 صبح
عزیزم ممنون. هنوز نتونستم MySQL Connector/Net رو دانلود کنم. اما همونطور که دیروز گفتم اون یکی لینک رو دانلود کردم(دیروز) و همونطور که حدس زده بودم یه provider هستش، البته سرم شلوغ بود و نرسیدم امتحانش کنم، ولی فکر کنم همین کارم رو راه میندازه،( هر چند اونیکی لینک رو هم حتما میگیرم، ولی خوب طول میکشه من یه چیز سریع میخوام، لینک غیر تحریمی و غیر مسدودی اگه سراغ داری ممنون میشم)، فکر میکنم همین که dll هاشو رفرنس بدم به برنامه ام کافیه،
اما یه مسئله ای هست، اگه نیاز به نصب داشته باشم، برنامه اجرایی من که رو ویندوز اجرا میشه خوب مشکلی ندارم لوکال هستش، سرور لینوکس هم همینطور و بهشون دسترسی دارم، اما یه قسمتی از برنامه که یه سایت هست و رو سرور نصب میشه هم نیاز به این ارتباط داره که خوب اجازه اجرای exe هم نمیده...
به هر حال این پروژه درس های بزرگی برام داشت که ارتباط با mySql رو لینوکس فقط یکیش بود. حتما وقتی کارو تموم کردم و فارغ بال شدم، سعی میکنم تو یه مقاله همه مشکلاتی که بهشون برخوردم و چیزایی که یاد گرفتم رو به اطلاع بقیه برسونم. از شما هم واقعا ممنونم کمک خیلی بزرگی کردی.
باز اگه نتونستم راه به جایی ببرم مزاحمت میشم.
(منتظر لینک هم هستم، البته اگه سراغ داری.)
پاینده باشید...

cameloss
پنج شنبه 10 اردیبهشت 1388, 06:00 صبح
دوس عزیز سلام مجدد.
بنده بالاخره تونستم دانلود کنم و نصب کردم.
وقتی کانکشن استرینگ رو اونطور که گفتی میدم این error میگیرم:



Requested value '{MySQL ODBC 3.51 Driver}' was not found.

وقتی هم که اون عبارت منجر به خطا رو ور میدارم این error میده:



Unable to connect to any of the specified MySQL hosts.


چندین ساعته که دارم باهاش ور میرم اما نمیفهمم ایراد از کجاست.
من الان رو ویندوز هستم و از طریق اینترنت میخوام با MySql رو لینوکس کانکت شم.
کانکشنم هم یه چیزی شبیه اینه:



DRIVER={MySQL ODBC 3.51 Driver}; SERVER=80.191.255.103; DATABASE=IBSng; UID=username; PASSWORD=12345678;


واقعا ممنونت میشم اگه به دادم برسی.
منتظر جواب شما هستم.
یا حق:خجالت:

حامد مصافی
پنج شنبه 10 اردیبهشت 1388, 08:12 صبح
اگر MySql Connector/Net را نصب کرده اید نیازی به استفاده از ODBC نیست.


string MyConString = "SERVER=localhost;" +
"DATABASE=IBSng;" +
"UID=username;" +
"PASSWORD=12345678;";
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand command = connection.CreateCommand();
MySqlDataReader Reader;

//get results from mysqlcommand here...

connection.Close();

البته باید یک refrence به MySql.Data در پروژه خود ایجاد کنید.

cameloss
جمعه 11 اردیبهشت 1388, 01:42 صبح
دوست خوب و بزرگوار و صبور من سلام و وقت به خیر.
من این کدی که شما فرستادی رو امتحان کرده بودم، ولی نتیجه نگرفتم. فقط یه نکته دستگیرم شد، وقتی پورت رو مشخص نمیکنم، سیستم یه پورتی رو اختصاص میده و من اون error ها رو که گفتم می گیرم، یا اگه هر پورتی رو اختصاص بدم همینه بجز پورت 80، وقتی 80 رو معرفی میکنم تو درخواست گیر میکنه و انقدر طول میکشه تا timeout میده و کانکشن قطع میشه، نتیجه ای بر نمیگردونه ولی اون ارور ها رو هم نمیگیره، تا اینکه timeout میده. چیزی به ذهن صبورت میرسه؟
فدای مهربونیت، یا حق.:خجالت:

حامد مصافی
جمعه 11 اردیبهشت 1388, 09:47 صبح
MySql روی لینوکس برای کار با پورت 3306پیکرده بندی شده است؟ با دستور زیر روی لینوکس می توانید این تنظیمات را ببینید.


cat ~/.my.cnf
اگر 3306 نبود شماره پورت را صریحاً قید کنید.

cameloss
جمعه 11 اردیبهشت 1388, 17:17 عصر
سلام مرثی از راهنماییت.
لینوکسی که باهاش کار دارم پوسته گرافیکیش نصب نیست و من تو استفاده از پوسته متنی وارد نیستم.
این فرمان تو پوسته متنی عمل می کنه؟
یعنی وقتی usr و pwd رو دادم و وارد شدم، تو خط فرمان همین دستور رو بنویسم کفایت میکنه؟
مشخصات سیستمشون اینه:

Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6.2 Server at 80.191.255.103 Port 80کدی هم که من برای تست نوشتم اینه:


private void BindTest()
{
try
{
string conString =
"SERVER=80.191.255.103; DATABASE=IBSng; UID=myusername; PASSWORD=mypassword;Port=3306";

MySqlConnection cnx = new MySqlConnection(conString);


Response.Write(conString);

MySqlDataAdapter adapter = new MySqlDataAdapter();

// Create a SQL command object
string cmdText = "SELECT * FROM users";
MySqlCommand cmd = new MySqlCommand(cmdText, cnx);

// Create a fill a Dataset
DataSet ds = new DataSet();
adapter.SelectCommand = cmd;
adapter.Fill(ds);

// Bind the DataSet
testGrid.DataSource = ds;
testGrid.DataBind();
}
catch (MySqlException ex)
{
lblError.Text = ex.Message + "<br />" + ex.TargetSite + "<br />" + ex.Data + "<br />" + ex.InnerException;
}
}شرمنده از خنگیم، به دادم برس

Ai_Kord
دوشنبه 14 اردیبهشت 1388, 00:45 صبح
من یکی دو سال پیش مشابه کاری که شما میگید رو انجام دادم. طراحی سایت با asp و سی شارپ که با دیتابیس mysql (که از قبل رو سرور شرکت بود) ارتباط برقرار میکرد و همه داده ها رو از از اون دیتابیس میخوند. mysql cennector/net و mysql connector/odbc هردو تاشو نصب کردم.تو کانکشن استرینگ هم با آی پی سرور کار میکردم. نمونه کانکشن استرینگ ها رو میتونی از سایت
http://www.connectionstrings.com پیدا کنی. این کتاب رو حتما سعی کن بخونی:

Apress.Beginning.ASP.NET.2.0.Databases.From.Novice .to.Professional.Mar.2006

خیلی کمکت میکنه. میتونی تو اینترنت پیداش کنی.احتمالا تو این سایت هم باشه
موفق باشی

cameloss
دوشنبه 14 اردیبهشت 1388, 17:21 عصر
سلام مجدد.
آقا بعد از دو ماه آقایون اذن دادن که بریم و سرورشون رو ببینیم، معلوم شده که پایگاه داده شون اصلا MySql نیست، از postgersql استفاده می کنن و دو ماهه ما رو گذاشتن سر کار...
فعلا دارم دنبال درایور psql می گردم، تو سایت مایکروسافت که نیست، لینکش هست اما صفحه اش نیست،
برای odbc driver هم ویندوز باید Genuine باشه، فعلا نتونستم چیزی گیر بیارم، از راهنماییهات ممنون، اگه لینکی برای دانلود psql driver داری ممنون میشم، تو گوگل چیز خاصی که به دردم بخوره نیافتم.
فعلا تا بعد...
هر اتفاقی افتاد خبرت می کنم.
ممنون مهربونیت، یا علی...:لبخندساده:

حامد مصافی
دوشنبه 14 اردیبهشت 1388, 17:42 عصر
http://www.springerlink.com/content/t3u02h75v3j41713/

Ai_Kord
شنبه 19 اردیبهشت 1388, 00:45 صبح
من کتاب postgersql Apress رو دارم اگه خواستید آدرس ایمیلتون رو با پیام.خ بهم اطلاع بدید. ebook رو بفرستم به ایمیلتون.