PDA

نسخه کامل مشاهده نسخه کامل : How to Configure the Database engine to Listen on Multiple Tcp Port



MTPROG
28-06-2009, 11:54
دو تا سیستم یکی AMD و دیگری intel دارای Xin XP و یک کارت شبکه هستن و SQLEXPRESS2005 روی هردو سیستم نصب شده است

در تنظیمات TCP/IP properties مربوط به SQL Server Configuration Manager تو سیستم تفاوتی وجود دارد

سیستم اینتل دارای یک IP

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


سیستم AMD دارای دو IP
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

مشکل:در سیستم AMD که دارای دو IP هستش توانایی اتصال به SQLEXPRESS 2005 تحت شبکه رو نداره و نمیتونه سرور رو پیدا کنه ولی سیستم اینتل بدون مشکل متصل میشه

علت چیه و چطور رفع میشه؟

نکته:با نصب SQL Server 2005 Enterprise و Win server 2003 Enterprise این مشکل برای سیستمهای دو Ip مثل AMD بابا حل شد ولی برای XP نه!

_H2_
28-06-2009, 13:02
سلام
شما دو سیستم دارید یکی یک کارت شبکه دارد و دیگری دو کارت شبکه دارد (واقعی یا مجازی) ...
حالا شما نمیتوانید از آن که دو کارت شبکه دارد به سرور وصل شوید؟ درست است؟
پس سرور ربطی به این دو سیستم ندارد و خودش یک سیستم جداگانه سومی است؟

ConnectionString تان چیست؟
نام یا ip سرور چیست؟

MTPROG
29-06-2009, 08:34
شما دو سیستم دارید یکی یک کارت شبکه دارد و دیگری دو کارت شبکه دارد (واقعی یا مجازی) ...

نه هرکدوم یک کارت شبکه دارند فقط تو سیستم دومی با این که یک کارت شبکه داره دوتا IP نشون میده
(برای IP مجازی نمی دونم چجوریه)


پس سرور ربطی به این دو سیستم ندارد و خودش یک سیستم جداگانه سومی است؟

در حالتی که خود اون سیستم سرور باشه این مشکل هست و هم در حالتی که یک سیستم دیگه سرور باشه بازم این مشکل وجود داره چون هر دوشو امتحان کردم

ConnectionString تان چیست؟
نام یا ip سرور چیست؟

IP SERVER:192.168.0.1
IP Client1:192.168.0.2
IP Client2:192.168.0.3
ConnectionString With SQLEXPRESS 2005

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ConnectionString With SQL SERVER2005

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته من فکر میکنم این مشکل مربوط به نسخه EXPRESS باشه چون با نصب نسخه Enterprise این مشکل حل میشه ولی نسخه Express برای برنامه های کوچکتر سبکتر و راحتره شاید نسخه Express توانایی کار با چندتا IP رو نداره(با توجه به اینکه نسخه Express رایگانه ولی نسخه Enterprise قیمت گزافی داره مطمئنا تفاوتهایی زیادی هم دارند)
یه جستجویی تو اینترنت کردم یه چیزایی دستگیرم شد که مربوط به نحوه گوش دادن SQL به IP های مختلف می شد و گفته بود اگه نمی خوای از چند تا IP استفاده کنی باید در بخش TCP/IP Properties گزینه Listen All برابر NO قرار بدی و خودت بصورت دستی در بخش بعدی تنظیم کنی که SQL به چه پورتی گوش بده

_H2_
02-07-2009, 21:54
سلام
اولاً عضر خواهی میکنم چون تا یکشنبه باید یک برنامه را تحویل دهم کمی گرفتارم و سوالاتی که کمی فسفر سوزی دارد را نتوانستم جواب دهم! (+دو pm بدون که انشا ا... دوستان دیگر هم به بزرگی خود خواهند بخشید)

=====

پس شما میفرمائید رایانه وقتی express را در خود همان رایانه 2 ip دار هم نصب میکنید باز کار نمیکند!!!!!
این دیگر بسیار عجیب است!
یا باید سرویس run نباشد و یا مشکل firewall باشد، در نهایت میتوانید از ip و port دستی هم استفاده کنید.


اول سعی کنید به نسخه express ای که در داخل خود همان رایانه است وصل شوید تا بعد برسد به شبکه ...

مثلاً وارد SQL Server Configuration Manager شوید
- مطمئن شوید در بخش Services ها گزینه (SQL Server (SQLEXPRESS فعال و در حالت run قرار دارد.
(اگر همین یک شرط برقرار باشد باید در همان رایانه حداقل در خودش بتوانید به SQLEXPRESS خودش متصل شوید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

==============

برای کارکرد تحت شبکه نسخه express نیاز به تنظیماتی در رایانه سرور دارد، که من کلاً از اول توضیحاتی میدهم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سپس برای فایروال هم دستورات زیر را پیگیری کنید:
فرامین زیر را دنبال کنید و مقدار Instance ID را ببینید، احتمالاً مقدارش MSSQL.1 است.
ولی امکان دارد با نصب نسخه های مختلف، مقدارش چیز دیگری باشد، پس:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سپس
(به جای MSSQL.x نام مناسب را جایگزین کنید)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(در صورتی که ضد ویروس خاصی هم دارید باید در آن هم اعلان کنید که مجوزهای فوق را بدهد)


- در نهایت باید نسخه EXPRESS را برای اعتبار سنجی روی mixedmode قرار دهید و حتماً یک user و pass هم برای دیتابیستان بسازید.
الف) با کمک SSMS:
وارد SQLEXPRESS\. شوید و سپس Root->RightClick->Properties->Security و مطمئن شوید که گزینه SQL Server and Windows Authentication mode فعال است و یکبار سرویس را ریست کنید

ب) دستی در رجیستری:
در run نام regedit.exe را تایپ و اینتر کنید
مسیر زیر را پیدا کرده
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer
و LoginMode را 2 قرار دهید.
و یکبار سرویس را ریست کنید.
(به جای MSSQL.x نام مناسب را جایگزین کنید)

در نهایت از همچین رشته اتصالی استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




در صورت ادامه مشکل میتوانید عدد پورتی خاص برای نسخه express وارد کنید (در تنظیمات SQL Server Configuration Manager->TCP/IP در رایانه سرور) و با این رشته اتصال استفاده کنید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

=====

البته تاپیکهایی هم در این خصوص وجود دارند ولی مربوط به express نیستند.
در نهایت برای سرور خدماتی شبکه استفاده از نسخه express چندان خوب نیست.
انشا ا... مشکلتان حل شود.

MTPROG
04-07-2009, 08:27
همه رو چک کردم همه درسته


پس شما میفرمائید رایانه وقتی express را در خود همان رایانه 2 ip دار هم نصب میکنید باز کار نمیکند!!!!!
چرا کار میکنه وقتی اون سیستم دارای دو آی پی به عنوان سرور در نظر گرفته بشه نرمافزار روی خود اون کار میکنه کلاینتها نمیتونن به اون وصل بشن
و وقتی سیستم مورد نظر به صورت کلاینت در نظر گرفته بشه نمی تونه به سرور وصل بشه.

درکل مشکل در تحت شبکه وجود دارد نه بصورت تک کاربره.

_H2_
06-07-2009, 21:15
سلام
متاسفانه نظر دیگری ندارم، هر چه میدانستم و حدس زده بودم همه را در پست قبلی zip شده خالی کردم!

1- مطمئن شوید که همه مراحل را بدون کمی و کاستی و با دقت انجام داده اید.
2- پیشنهاد میکنم در سرور ip و port را دستی مشخص کنید و از connectionstring آخری در کلاینت استفاده کنید.
3- از همان نسخه های قدرتمندتر sqlserver استفاده کنید (مخصوصاً برای شبکه و اطلات چند گیگی و تراکنش های زیاد)

موفق باشید.

MTPROG
07-07-2009, 08:16
از همان نسخه های قدرتمندتر sqlserver استفاده کنید (مخصوصاً برای شبکه و اطلات چند گیگی و تراکنش های زیاد)


همین کار بهترینه چون هیچ مشکلی نداره