PDA

View Full Version : سوال در مورد وصل شدن به mysql در سی شارپ



MostafaKhani
دوشنبه 15 مرداد 1397, 17:38 عصر
سلام درود
میخواستم ببینم چطور میتونم ارتباط برقرار میکنم به دیتابیس mysql یک سایت یا هاستی

کدی که نوشتم اینه

private MySqlConnection conn;
private string server;
private string database;
private string uid;
private string password;

server = "localhost";
database = "user_p";
uid = "root";
password = "";
string connString;
connString = $"SERVER={server}; DATABASE={database}; UID={uid}; PASSWORD={password};";
conn = new MySqlConnection(connString);
برنامه به mysql لوکال هاست وصل میشه و مشکلی نداره اما زمانی که آدرس سرور دیگه رو میدم با این ارور مواجه میشود

MySql.Data.MySqlClient.MySqlException: 'Unable to connect to any of the specified MySQL hosts.'
ممنون میشم راهنمایی کنید
باتشکر

محمد رضا فاتحی
دوشنبه 15 مرداد 1397, 22:47 عصر
شما در صورتی می تونید با این روش وصل بشید که سرور مجازی داشته باشید.بهترین روش استفاده از وب سرویسه.
با php یه صفحه رابط بسازید اطلاعات رو پاس بدید بهش و مقادیر دریافتی رو تو سی شارپ بخونید

رامین مرادی
سه شنبه 16 مرداد 1397, 09:39 صبح
سلام درود
میخواستم ببینم چطور میتونم ارتباط برقرار میکنم به دیتابیس mysql یک سایت یا هاستی

کدی که نوشتم اینه

private MySqlConnection conn;
private string server;
private string database;
private string uid;
private string password;

server = "localhost";
database = "user_p";
uid = "root";
password = "";
string connString;
connString = $"SERVER={server}; DATABASE={database}; UID={uid}; PASSWORD={password};";
conn = new MySqlConnection(connString);
برنامه به mysql لوکال هاست وصل میشه و مشکلی نداره اما زمانی که آدرس سرور دیگه رو میدم با این ارور مواجه میشود

MySql.Data.MySqlClient.MySqlException: 'Unable to connect to any of the specified MySQL hosts.'
ممنون میشم راهنمایی کنید
باتشکر

شما مستقیما نمیتونید از سیستم دیگه ای به دیتابیس مای اس کیو ال موجود رو هاست وصل بشید. دلیلشم اینه که مسئولین هاست ریموت مای اس کیو ال رو میبندن اونم بنا به دلایل امنیتی.
طبق فرمایش استادمون جناب فاتحی راه چارش استفاده از وب سرویس هست.
این تایپیک رو هم مطالعه بفرمایید. http://barnamenevis.org/showthread.php?546886-%D8%B4%D8%A8%DB%8C%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE%DB%8C-%D8%A2%D9%81%D9%84%D8%A7%DB%8C%D9%86-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86&highlight=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87+%D8 %A2%D9%86%D9%84%D8%A7%DB%8C%D9%86

mon1382
سه شنبه 16 مرداد 1397, 22:43 عصر
سلام دوستان
به نظر من باید در محیط command خود mysql بیاد و یک user با سطح دسترسی از طریق ip ادرس معرفی کنه.
چون از بیرون از کامپیوتر خود شخص اگر بخوان بهش وصل شن دیگه localhost نمیشه و user root فقط دسترسی local رو فراهم می کنه


برای اتصال به پایگاه داده به صورت Remote نیاز به ادرس یا IP کامپیوتر مقصد به همراه شماره پورت و یک User که اجازه دستری از طریق remote را داشته باشد ، داریم.
(1) Open cmd.
(2) navigate to path C:\Program Files\MySQL\MySQL Server 5.X\bin and run this command.mysql -u root -p
(3) Enter the root password.
(4) Execute the following command to provide the permission.
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'IP' IDENTIFIED BY 'PASSWORD';
USERNAME: Username you wish to connect to MySQL server.
IP: Public IP address from where you wish to allow access to MySQL server.
PASSWORD: Password of the username used.
IP can be replaced with % to allow user to connect from any IP address.
(5) Flush the previleges by following command and exit.
FLUSH PRIVILEGES;

. برای از کار انداختن اتصال Remote فقط کافی است به جای “IP” مقدار “localhost” را وارد کنیم تا با ان user دیگر نتوان به دیتا بیس متصل شد.