سلام دوست عزیز
شما وقتی یه برنامه بنویسی که بتونی به mysql کانکت بشی هیچ تفاوتی نمی کنه که سرورتون روی لینوکس باشه یا روی ویندوز.
مهم آی پی سرور هست که باید توی کانکشن استرینگ تنظیم کنید.
فقط نکته ای که می مونه اینه که بصورت پیش فرض نمی توان به mysql که بر روی لینوکس نصب شده از طریق شبکه متصل شد و فقط می توان به صورت local متصل شد.
برای دادن دسترسی از طریق شبکه به سرور mysql در لینوکس کافیه به فایل به آدرس /etc/mysql/my.cnf رفته و فایل را با یه ادیتور باز کنید و خط
...
...
bind-address = 127.0.0.1
...
...
رو پیدا کنید و اولش یه # بزنید تا تبدیل به کامنت شه و فایل رو ذخیره کنید و سرور mysql رو ریست کنید. با انجام این کار از طریق شبکه می توان به mysql موجود بر روی لینوکس کانکت شد.
حالا میمونه طریقه متصل شدن از سی شارپ به mysql که با اون dll که دوستمون جناب mortezgat دادند میشه کانکت شد.
dll رو دانلود کنید و از منوی project -> add refrence به پروژتون اضافه کنید.
حالا میمونه کد نویسی که من قبلا یک کلاس واسه این کار نوشتم که به بانک مای اسکیو ال کانکت میشه. البته این کلاس به زبانه ویبی هست که خودتون می تونید به سی شارپ تبدیلش کنید. اگه هم مشکلی تو تبدیل هست بگید که خودم تبدیلش کنم.
بالای کلاس دو خط زیر را اضافه کنید.
Imports System.Data
Imports MySql.Data.MySqlClient
فقط کافیه این کلاس رو تو کلاسی که می خاید از دستورات mysql استفاده کنید به ارث ببرید.
و از توابع source و execute استفاده کنید.
تابع source واسه کوئری select استفاده میشه و نیجه رو میریزه توی ds توی جدول t1
تابع execute هم واسه کوئری های insert , update و delete استفاده میشه
نکته ی دیگه ای هم که هست اینه که وقتی از پارامترها استفاده می کنید توی sqlserver قبل از هر پارامتر علامت @ قرار می دیم اما در mysql علامت ؟ باید قرار بدیم.
اگه سوالی داشتید در خدمتم.
موفق باشید.
Public Class mysql_db_cls
Private cnn As New MySqlConnection
Private cmd As New MySqlCommand
Private sda As New MySqlDataAdapter
Protected ds As New DataSet
Protected psign As String = "?"
Private cnn_string As String
Public Sub New()
cnn_string = "server = ip_server; userid = root; password = pass;database = database;charset=utf8"
cnn.ConnectionString = cnn_string
cmd.Connection = cnn
End Sub
Protected Overloads Sub source(ByVal query As String, ByVal param() As MySqlParameter)
Try
cmd.CommandText = query
cmd.Parameters.Clear()
For I As Integer = 0 To param.Length - 2
cmd.Parameters.AddWithValue(param(I).ParameterName , param(I).Value)
Next
sda.SelectCommand = cmd
ds.Clear()
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If
cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک ")
Application.Exit()
End Try
Try
sda.Fill(ds, "t1")
cnn.Close()
Catch ex As Exception
MessageBox.Show("خطا در اجرای کوئری")
Application.Exit()
Finally
If (cnn.State = ConnectionState.Open) Then
cnn.Close()
End If
End Try
End Sub
Protected Overloads Sub source(ByVal query As String)
Try
cmd.CommandText = query
sda.SelectCommand = cmd
ds.Clear()
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If
cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک")
Application.Exit()
End Try
Try
sda.Fill(ds, "t1")
cnn.Close()
Catch ex As Exception
MessageBox.Show("خطا در اجرای کوئری")
Application.Exit()
Finally
If (cnn.State = ConnectionState.Open) Then
cnn.Close()
End If
End Try
End Sub
Protected Overloads Function execute(ByVal query As String) As Boolean
Try
cmd.CommandText = query
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If
cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک")
Application.Exit()
End Try
Try
cmd.ExecuteNonQuery()
cnn.Close()
Return True
Catch ex As Exception
MessageBox.Show("خطا در اجرای کوئری")
Application.Exit()
Dim qq = ex.Message
Return False
End Try
End Function
Protected Overloads Function execute(ByVal query As String, ByVal param() As MySqlParameter) As Boolean
Try
cmd.CommandText = query
cmd.Parameters.Clear()
For I As Integer = 0 To param.Length - 2
cmd.Parameters.AddWithValue(param(I).ParameterName , param(I).Value)
Next
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If
cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک")
Application.Exit()
End Try
Try
cmd.ExecuteNonQuery()
cnn.Close()
Return True
Catch ex As Exception
MessageBox.Show("خطا در اجرای کوئری")
Application.Exit()
Dim qq = ex.Message
Return False
End Try
End Function
End Class