PDA

View Full Version : سوال: ناتوانی در اتصال به sql server در شبکه - خطای A network-related or instance-specific error occurred



m_ali_gho
شنبه 23 شهریور 1392, 19:01 عصر
سلام دوستان
میخوام تو یه برنامه تحت شبکه از client به sql server وصل شم اما نمیشه
connectionstring تو سرور به این صورت هستش:

Data Source=127.0.0.1;Initial Catalog=DBName;Integrated Security=True

داره درست هم کار میکنه.
connectionstring تو client به این صورت هستش:

Data Source=192.168.1.2;Initial Catalog=DBName;Integrated Security=True

اما نمیدونم چرا وصل نمیشه بهش. اروری هم که میده اینه:


A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

parvizwpf
شنبه 23 شهریور 1392, 19:07 عصر
چک کنید ببینید واقعا توی تماس با کامپیوتر 1.2 مشکل ندارید.

m_ali_gho
شنبه 23 شهریور 1392, 19:16 عصر
چک کنید ببینید واقعا توی تماس با کامپیوتر 1.2 مشکل ندارید.

چطور این کار رو بکنم؟
البته فکر کنم به صورت workgroup با هم تماس داشته باشن.
میگم فکر کنم چون مدل دقیق تماس دو کامپیوتر رو نمیدونم.
دو کامپیوتر 100% با هم تماس دارن. چون من میتونم تو ویندوز و شکبه فایل بین دو کامپیوتر جابجا میکنم.
ضمنا، سابقا چند تا برنامه سوکت و pipe داشتم که اونها هم بدون مشکل با هم ارتباط داشتن.

rahim_ttl
شنبه 23 شهریور 1392, 20:29 عصر
دوست عزیز شما در شبکه از لاگین ویندوز نمی تونی استفاده کنی؟
باید از این کانکشن استرینگ استفاده کنی:
Data Source=192.168.1.2;Initial Catalog=DBName ; User ID = user id sql ; PWD = password sql

mohsengoodarzidana
شنبه 23 شهریور 1392, 20:57 عصر
شما دو راه حل داری که به دوشکل مختلف می توانی پیاده سازی کنی
1با استفاده از لاگین ویندوز که در این صورت نام لاگین سرور میبایست برابر با نام لاگین کلاینت باشه و پسورد ها هم یکی باشه
2 با استفاده از لاگین sql server که خودت بهتر بلدی
توصیه : از آی پی استفاده نکن از نام سرور استفاده کن از آی پی هایی که نوشتی به نظر می آیدکه یک شبکه کوچیک باشه

m_ali_gho
شنبه 23 شهریور 1392, 22:23 عصر
دوست عزیز شما در شبکه از لاگین ویندوز نمی تونی استفاده کنی؟
باید از این کانکشن استرینگ استفاده کنی:
Data Source=192.168.1.2;Initial Catalog=DBName ; User ID = user id sql ; PWD = password sql

خیلی ممنون. این user id sql و password رو از کجا باید بگیرم؟ اگه منظورتون خود سرور sql هستش، سرور هم نام با کامپیتر هستش و پسوورد هم نداره و اگه هم منظورتون id و password خود ویندوز باشه (که بعید میدونم چون گفتین نمیشه از لاگین ویندوز استفاده کرد)، من الان و اینجا تو این سیستم پسورد و آیدی خود ویندوز رو میدونم. وقتی که برنامه رو بخوام تحویل بدم چی کار باید انجام بدم براش؟


شما دو راه حل داری که به دوشکل مختلف می توانی پیاده سازی کنی
1با استفاده از لاگین ویندوز که در این صورت نام لاگین سرور میبایست برابر با نام لاگین کلاینت باشه و پسورد ها هم یکی باشه
2 با استفاده از لاگین sql server که خودت بهتر بلدی
توصیه : از آی پی استفاده نکن از نام سرور استفاده کن از آی پی هایی که نوشتی به نظر می آیدکه یک شبکه کوچیک باشه

از شما هم خیلی ممنونم دوست عزیز. مورد اول برام یکمی ابهام داره. یعنی چی نام لاگین سرور باید با نام لاگین کلاینت یکی باشه؟ میشه منظورتونو یکم واضح تر بگین؟ همونطوری که گفتم sql server پسوورد نداره و نام کامپیوتر و نام سرور sql هر دو یکی هستش (فکر کنم همه جا باید همین باشه. درسته؟).
اما مورد دوم. منظورتون اینه که با برنامه سمت کلاینت به sql server لاگین کنم؟ خوب چطوری؟ اگه بلد بودم که انجام میدادم و دیگه نمیپرسیدم.
بله شبکه کوچیکیه با 3-4 تا سیستم اما مگه فرقی داره؟ ضنما برای چی از آی پی استفاده نکنم؟ مشکلی بوجود میآره؟
یه سوال جدا از این بحث. وقتی دارم از sql server استفاده میکنم دیگه مشکلی با async بودن یا نبودن sql server ندارم؟ یه مثال میزنم تا متوجه منظورم بشید. یه برنامه داشتم که از چند تا thread استفاده میکرد و با sql express کار میکردن. همیشه مشکل داشتم باهاش چون یه thread اتصال برقرار میکرد و تا میخواست query بزنه یه thread دیگه اتصال رو میبست. و خیلی برای این موضوع داستان کشیدم...
میخوام بدونم این مشکل رو sql server خودش حل میکنه یا نه؟

rahim_ttl
شنبه 23 شهریور 1392, 22:48 عصر
دوست عزیز با توجه به تجربه شخصی بهتره از IP استفاده چون بارها دیدم شبکه دچار مشکل شده و با نام کامپیوتر امکان برقراری ارتباط نبود ولی با استفاده از آی پی به راحتی کانکت می شد
مراحل اتصال به SQL در شبکه با استفاده لاگین SQl:
ابتدا از منوی استارت SQL Server Configuration Manager رو اجرا کن ، از سمت راست Protocols for MSSQLSERVER ، TCP IP رو فعال کن و پورتی را که استفاده می کنی ست کن یا بذار همون دیفالت باشه
sql server mangment رو اجرا کن و با راست کلیک بر روی server به قسمت Properties / Security برو و sql server and windows auth را انتخاب و اوکی کن در لیست درختی سمت چپ از قسمت Security/Login می تونی یوزر تعریف کنی حتما تو تنظیماتش فعال بودنش رو بررسی کن

صباح فتحی
شنبه 23 شهریور 1392, 23:32 عصر
مشکل شما استفاده از Integrated Security=True است باید لاگین بشید

m_ali_gho
شنبه 23 شهریور 1392, 23:41 عصر
مشکل شما استفاده از Integrated Security=True است باید لاگین بشید

برش دارم یا false کنم؟

m_ali_gho
شنبه 23 شهریور 1392, 23:48 عصر
چه پاک کنم و چه False کنم،
در هر صورت یه ارور جدید میده:

login failed for user ''.

mhsmity
جمعه 03 آبان 1392, 15:43 عصر
ابتدا از منوی استارت SQL Server Configuration Manager رو اجرا کن ، از سمت راست Protocols for MSSQLSERVER ، TCP IP رو فعال کن و پورتی را که استفاده می کنی ست کن یا بذار همون دیفالت باشه

سلام من ویندوز 7 با ویژوال 2008 نصب و ای کیو ال 2005 نصب دارم وقتی TCP IP رو فعال می کنم .
SQL Server (MSSQLSERVER) غیره فعال شده و دیگه استارت نمی شه؟
این عملایتات رو داخل اس کیو ال 2008 انجام دادم به خوبی جواب گرفتم .
واسه 2005 باید چی کار کنم؟

naghshineh m&h
جمعه 03 آبان 1392, 18:47 عصر
"Server=" نام سرور ";" + "database=" نام دیتا بیس ";" + "user id=" ID بانک اطلاعاتی مثل SA ";" + "password="کلمه عبور بانک اطلاعاتی ";";

حتما باید SQL را در حالت Mixed Mode تنظیم کرده باشید

mhsmity
جمعه 03 آبان 1392, 19:22 عصر
"Server=" نام سرور ";" + "database=" نام دیتا بیس ";" + "user id=" ID بانک اطلاعاتی مثل SA ";" + "password="کلمه عبور بانک اطلاعاتی ";";

حتما باید SQL را در حالت Mixed Mode تنظیم کرده باشید
سلام این حالت که می گین از کجا تنظیم میشه ؟
از رشته اتصال شما هم ممنونم بنده مشکل رشته اتصال ندارم .
فقط می خوام تی سی پی که طریقه فعال شدنش اینجا گفته شده با موارد که من نصب درام مطابقت بدم.
الان بدونه فعال کردن تی سی پی برنامه داره کاره می کنه کنه و مشکل خاصی ندارم.
اگه دوست دراین بحث رو دنبال کنیم که چرا بین 2005 و 2008 سرور این تفاوت وجود دارد.