دیتاگریپ: چاقوی همه کاره برای کار با بانکهای اطلاعاتی رابطه ای

شرکت معتبر جت برینز که محیط های برنامه نویسی حرفه ای آن در بین توسعه گران و برنامه نویسان باتجربه، جای پای بسیار محکمی دارد و محصولات معروفی مانند اینتلی جی برای جاوا و اسکالا و اندروید، پای چارم برای پایتون، پی اچ پی استورم برای پی اچ پی، روبی ماین برای روبی و … را در سبد محصولات خود دارد، اخیراً نسخه اول نرم افزار دیتاگریت (DataGrip) را روانه بازار کرده است.

 

در صفحه خانگی این نرم افزار، این محصول به عنوان یک چاقوی همه کاره برای مدیریت و کار با بانکهای اطلاعاتی رابطه ای معروف دنیا یعنی اوراکل، DB2، اس کیو ال سرور، مای اس کیو ال، پستگرس، اس کیو ال لایت و … معرفی شده است.

ز جمله امکانات آن می توان به موارد زیر اشاره کرد:

تغییرات مختلف در بانکهای اطلاعاتی و مشاهده اسکریپت متناظر به صورت لحظه ای

1modify

  • مدیریت انواع مختلف بانکهای اطلاعاتی رابطه ای با یک محصول
  • تکمیل کد هوشمند

complletion

  • آنالیز کوئری و پیشنهاد های هوشمند برای اصلاح

executing

  • مشاهده نمودار روابط بین جداول

00_14_diagram

  • …..

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

 

منبع : https://geekboy.ir

مهاجرت به MySQL

اشاره :
مهاجرت يك پروژه از يك محيط نرم‌افزاري به محيط مشابه ديگر، همواره بسيار دشوارتر از آغاز آن پروژه در يك محيط مشخص است. درواقع فرايند مهاجرت، از اولين مراحل آن (اتخاذ تصميم صحيح)، تا بهره‌برداري از سكو يا نرم‌افزارجديد، به نوعي تفكر فني و مديريتي خاص نيازمند است. در اين مقاله سعي مي‌كنيم مزايا، مشكلات و راهكارهاي مهاجرت سيستم‌هاي اطلاعاتي به‌ MySQL را بررسي نماييم.

 


اهداف مهاجرت
انتشار نسخه‌هاي جديد ‌MySQL، به ويژه نسخه پنجم آن با قابليت‌هاي فراوان و قيمت ارزان، باعث شده است براي بسياري از شركت‌هايي كه همواره به ‌دليل محدوديت مالي، با هزينه‌هاي خريد، نگهداري و ارتقاي سيستم اطلاعاتي خود دست و پنجه نرم مي‌كردند، جاي شك و ترديدي نماند كه راه نجات آن‌ها، روي‌آوردن به سمت نرم‌افزارهاي سورس باز و به ويژه بانك اطلاعاتي ‌MySQL است. شايد قبلاً شرح كاهش چشمگير هزينه‌هاي نگهداري سيستم در سايت آمازون براثر استفاده از ‌MySQL را شنيده باشيد، اما اكنون مسئله از آن هم فراتر رفته‌ است.

زيرا آن نسخه ‌‌MySQL كه آمازون و چندين سايت اينترنتي را از بحران مالي دور كرد و به سوي وضعيت بهتري رساند، با نسخه كنوني ‌‌MySQL بسيار متفاوت است. شايد در آن زمان حتي بسياري از كارشناسان بي‌طرف سيستم‌ها و بانك اطلاعاتي، ‌MySQL را به دلايل ويژگي‌هاي آن زمان، يعني عدم پشتيباني از برخي امكانات و استانداردهاي يك بانك‌اطلاعاتي چند‌منظوره مثل تريگر، روال ذخيره‌شده، ويو و امثال آن، فقط براي استفاده در چند كاربرد محدود مثل انباركردن اطلاعات يا به اصطلاح ‌Data Warehousing مناسب مي‌دانستند و در برخي كاربردهاي تجاري پرمصرف ديگر مثل سيستم‌هاي مبتني ‌بر فرايندهاي محاسباتي (‌Transaction) استفاده از آن را توصيه نمي‌كردند.

به عنوان مثال، در آن روزگار ‌‌MySQL مي‌توانست براي سايت‌هايي كه صرفاً نقش اطلاع‌رساني را بازي مي‌كردند و چندان درگير پردازش‌هاي سنگين نبودند (مانند سايت آمازون) انتخاب مناسبي قلمداد شود، اما در كاربردهاي ديگري چون سيستم‌هاي اطلاعاتي و مديريت منابع انساني سازمان‌ها و موسسات تجاري‌ (سيستم‌هاي ‌MIS،‌‌ERP يا ...) به عنوان راه‌حل رده چندم هم به حساب نيايد.

با اين‌حال اكنون وضع به گونه ديگري است. تغييراتي كه در نسخه‌هاي جديد ‌‌MySQL داده شده، اين موتور پايگاه داده‌اي را در معرض رقابت جديدي با بانك‌هاي اطلاعاتي سرشناسي چون اوراكل و ‌‌SQLServer قرار داده است. بنابراين براي بسياري از شركت‌هايي كه قصد اختصاص هزينه‌هاي كمتري براي برخورداري از يك سيستم بانك‌اطلاعاتي را دارند، ‌MySQL يك آلترناتيو ايدهآل به حساب مي‌آيد. غير از هزينه‌‌هاي مربوط به مالكيت (TCO) كه پايين بودن آن يكي از نقاط‌قوت ‌MySQL قلمداد مي‌شود، عامل مهم ديگري وجود دارد كه همان خدمات پشتيباني است. اين عامل كه همواره از عوامل بسيار با اهميت در حوزه‌هاي مختلف ‌IT است، تا چند سال قبل با علامت سوال بزرگي درباره برخي محصولات اپن سورس مثل ‌MySQL همراه بود.
 
نامشخص بودن متولي رسمي در قالب يك شركت مطرح و همچنين تعدد توزيع و نسخه‌هاي مختلف، همواره يكي از نقاط‌ضعف برخي نرم‌افزارهاي سورس باز بوده است. اما در مورد ‌MySQL و به‌ويژه در سال‌هاي اخير كه پس از انجمن‌هايي چون ‌MySQL AB، شركت‌هاي مطرحي مثل ‌‌SAP به توسعه و پشتيباني نسخه‌هايي از نرم‌افزارهاي مبتني ‌بر ‌‌MySQL پرداختند، اوضاع بسيار قابل اعتمادتر از گذشته شده‌است. افزايش تعداد حاميان ‌MySQL در ميان شركت‌هاي معتبر و شكل‌گيري اجتماعاتي براي حمايت از توسعه‌دهندگان و استفاده‌كنندگان ‌‌MySQL با نام MySQL Community و MySQL NetWork، از عوامل پايدارتر شدن موضع ‌MySQL در برابر ساير رقبا است.

هزينه‌يابي
همان‌طور كه گفته‌شد، هزينه، همواره يكي از عوامل مورد توجه در انتخاب محصولات اپن سورس و به‌ويژه ‌MySQL  بوده و هست. طبق آمار موسسه ‌MySQL، هزينه خريد و نگهداري مجوز استفاده از ساير بانك‌هاي اطلاعاتي معتبر در  سال 2005 بالغ بر ده ميليون دلار براي بيش از دو هزار شركت بزرگ برآورد شده است، اما بعضي از آن‌ها توانسته‌اند با مهاجرت از ساير بانك‌هاي اطلاعاتي به سمت‌ ‌MySQL بين هشتاد تا نود درصد هزينه‌هاي مذكور را كاهش دهند.
 
در حالي كه علاوه بر مسائل مربوط به هزينه خريد و نگهداري مجوز استفاده، نكات قابل توجه ديگري نيز در اين قبيل ملاحظات مالي مطرح است. يكي از اين نكات، هزينه مربوط به ارتقاي سخت‌افزار يا سيستم عامل در موارد ضروري است. براين اساس، افزايش تعداد سرورها در ساير بانك‌هاي اطلاعاتي داراي هزينه‌هاي جداگانه و خاص خود است. در‌حالي‌كه اين مسئله در ‌MySQL با وجود سرويس‌هاي پشتيباني خاصي كه براي اين‌گونه موارد درنظر گرفته شده‌است، مشتريان را نسبت به افزايش تعداد سرورها نگران نمي‌كند. در ساير موارد مربوط به ارتقا نيز كماكان استفاده از ‌MySQL بسيار مقرون‌به‌صرفه جلوه مي‌نمايد. وجود نسخه‌هاي ويژه انواع سكوهاي سخت‌افزاري و نرم‌افزاري چون اينتل، اپل، يونيكس، ويندوز، لينوكس، انواع معماري‌هاي 64 بيتي و امثال آن ازجمله دلايل اين امر به حساب مي‌آيند.

‌نگاهي به ‌‌mySQL AB
اصولاً مسئله مهاجرت از يك نرم‌افزار به نرم‌افزار ديگر، پيچيده و مستلزم دقت كافي در نكات فني و مالي است. بدون‌شك هيچ مشتري عاقلي حاضر به خريد يك محصول نرم‌افزاري كه نام يك شركت پشتيباني‌كننده را به همراه نداشته باشد، نيست. حال هرچه اين شركت سرشناس‌تر و محصولش در بازار داراي استفاده كننده بيشتري باشد، اطمينان مشتريان بعدي نيز بالاتر مي‌رود و ناخودآگاه محصول فوق را به عنوان يك انتخاب قوي براي آن‌ها درمي‌آورد. در حال حاضر‌ MySQL NetWork از اين ويژگي برخوردار است. اين اتحاديه تا سال 2005 در بيش از 22 كشور دنيا، بالغ بر هشت ميليون نسخه ‌‌MySQL AB را نصب و پشتيباني كرده‌است و به گفته مسئولان آن، روزانه تقريباً چهل هزار نفر اقدام به دانلود تمام يا قسمتي از محصولات ‌‌MySQL AB مي‌نمايند.
 
اما شركت‌هاي بزرگي كه خواستار ارائه پشتيباني از محصولات باشند نيز مي‌توانند امتياز پشتيباني موسوم به‌MySQL NetWork را خريداري كنند و از مزاياي آن بهره‌مند شوند. هم‌اكنون شركت‌هاي معتبري چون HP، ناول، دل و ديگران نيز از عاملا‌ن فروش امتياز پشتيباني ‌‌MySQL Network هستند و بسياري از شركت‌ها يا سازمان‌هاي بزرگ نظير ياهو، گوگل، ناسا، سايت آمازون و ... نيز از مشتريان اين امتياز پشتيباني به شمار مي‌آيند. به گفته دان آگرونو، مدير فني سايت هواشناسي ‌Weather.com (يكي از ده سايت اينترنتي بزرگ جهان)، استفاده از يك سيستم عامل لينوكس، پردازنده اينتل و بانك ‌MySQL به جاي سرور سولاريسي در اين سايت باعث كاهش يك سوم هزينه‌هاي نگهداري و افزايش سي‌درصدي كارايي و حجم پردازش شده است.

هزينه برحسب كارايي
‌صحبت از كارايي يا سرعت پردازش ذخيره، بازيابي يا پردازش اطلاعات به ميان آمد. بد نيست عامل هزينه را به همراه مسئله كارايي سيستم به‌طورهمزمان بررسي نماييم. كاملاً واضح است كه هيچ كارفرمايي حاضر نيست سرعت، كارايي و ظرفيت سيستم خود را كاملاً فداي هزينه پايين نمايد. بنابراين به دنبال راه‌حل ميانه و بهينه‌اي مي‌گردد كه تا حدودي هر دو خواسته را برآورده كند. امروزه ‌MySQL با توانايي‌ها و قابليت‌هاي جديدي كه در نسخه پنجم به بعد خود به همراه دارد، قادر است اين مهم را به انجام برساند.

بنابراين مشتري در زمان استفاده از ‌‌MySQL نبايد نگران هزينه احتمالي براي ارتقاي سخت‌افزار خود يا افزايش تعداد سرورها، پردازنده‌ها، يا هارديسك‌ها باشد. چراكه‌ MySQL مي‌تواند تا حدود قابل توجهي اين نياز را جبران نمايد. وجود انواع موتورهاي ذخيره‌سازي ‌(‌Store Engin در ‌MySQL) كه شيوه ذخيره‌سازي اطلاعات را براي كاربردهاي گوناگون تعريف مي‌نمايند، از جمله ابزارهاي مهم در مقبول بودن سرعت سيستم به حساب ميآيند. دو موتور ذخيره‌سازي مشهور به نام ‌‌InnODB براي كاربردهاي OLTP و موتور ISAM براي كاربردهاي OLAp به علاوه چندين موتور ذخيره‌سازي ديگر براي  ساير كاربردها دستيابي به اين هدف را آسان‌تر نموده‌اند. ابزارهاي ديگري چون سيستم ايندكس‌گذاري روي متون ‌(Text Indexing)، سيستم تنظيم‌كننده و پيكربندي حافظه‌ ‌Cache مورداستفاده موتور MySQL، و برنامه‌هاي بهينه‌ساز كارايي سيستم ‌(‌Optimizer) نيز از جمله ابزارهاي موجود در اين بانك اطلاعاتي هستند.

جدول 1


حتي بسياري از كارشناسان بر اين باورند كه در هنگام الزام به استفاده از تعداد سرورهاي بيشتر نيز ‌‌MySQL داراي مزيت بزرگ است؛ زيرا هم از افزايش تعداد سرورهاي بانك اطلاعات در هر دو شكل آن يعني هم به صورت اشتراك داده و هم به صورت خوشه‌بندي به خوبي پشتيباني مي‌كند و هم خريد مجوز آن براي افزايش و استفاده روي سرورهاي جديد بسيار مقرون به صرفه‌تر از ساير بانك‌هاي اطلاعاتي موجود چون اوراكل يا ‌SQLServer است. جدول 1 نسبت هزينه به كارايي‌‌(علا‌مت $‌US به معناي واحد هزينه به دلار و ‌TOPS يعني تعداد عمليات قابل اجرا در واحد ثانيه است) را براي چند پايگاه داده مختلف نشان مي‌دهد. در اين جدول عدد كمتر نشان‌دهنده هزينه كمتر و كارايي بيشتر است.

مهيار داعي‌الحق
ماهنامه شبکه - خرداد ۱۳۸۵ شماره 65

ابزارهاي ويژوال‌ در MySQL

 

اشاره :

در چند شماره گذشته و پياپي ماهنامه شبكه، مقالاتي درزمينه آشنايي با MySQL و روند تكامل و بهبود سرويس‌هاي مختلف موجود در آن به چاپ رسيد. در اين شماره قصد داريم به ابزارهاي گرافيكي يا همان واسط‌هاي كاربري كه سرويس‌هاي مذكور را در اختيار كاربر قرار مي‌دهند بپردازيم.

 


داشتن ابزارها و واسط‌هاي كاربري گرافيكي همواره از نقاط قوت يك پلتفرم، سيستم‌عامل يا برنامه نرم‌افزاري محسوب مي‌شود. هرچند روح يا لايه متفكر يك نرم‌افزار را هسته يا موتور اجرايي درون آن تشكيل مي‌دهد، بدون داشتن يك رابط‌گرافيكي كاربرپسند كه نقش كالبد و پيكر آن را بازي مي‌كند، مانند موجودي نامرئي است كه بسياري از ويژگي‌ها و توانايي‌هايش از ديد ديگران پنهان مي‌ماند. از اين‌رو بسياري از نرم‌افزارهايي كه به‌ صورت سنتي براساس دستورات خط فرمان، سرويس‌هاي خود را در اختيار كاربران قرار مي‌دادند تلاش نمودند ضمن حفظ يكپارچگي و توانايي‌ها و ويژگي‌هاي سابق خود، ابزارهاي جديدي را براي برقراري يا تكميل هرچه بهتر رابطه خود با كاربران و به‌خصوص متخصصان و برنامه‌نويسان سيستم عامل‌هاي گرافيكي ارائه  نمايند.

بانك‌هاي اطلاعاتي نيز به دليل ماهيت خود كه سطح گسترده‌اي از سرويس‌هاي مختلف را دربرمي‌گيرند، نه تنها از اين قاعده مستثني نبوده‌اند، بلكه در برخي موارد نيز چاره‌اي جز پيوستن به اين روند نيافته‌اند. شايد بتوان اقبال برخي برنامه‌نويسان و توسعه‌‌دهندگان به نسخه‌هاي اوليه برخي بانك‌هاي اطلاعاتي نوپا، چون SQLServer مايكروسافت، را نمونه بارزي از تمايل متخصصان به استفاده از بانك‌هاي اطلاعاتيِ داراي واسط كاربر گرافيكي دانست. در حالي كه نقص همين ويژگي در برخي بانك‌هاي اطلاعاتي قدرتمند و پيش‌كسوتي چون اينفورميكس، باعث افول و پايان يكه‌تازيشان در عرصه نگهداري و پردازش اطلاعات شد.

از اين رو بانك‌اطلاعاتي MySQL كه قاعدتاً با توجه به پيشرفت‌هاي روز به‌روز و شگفت‌انگيز محيط‌هاي گرافيكي همزاد خود يعني لينوكس، راهي جز پيوستن به خط‌مشي مذكور را نمي‌ديد، از نسخه 4 و به خصوص نسخه 5 شاهد دگرگوني بسيار شگرفي در ارائه ابزارهاي گرافيكي مديريت، توسعه و عيب‌يابي بانك‌هاي اطلاعاتي شد. اين ابزارهاي گرافيكي همچون خود هسته MySQL به‌صورت منبع‌باز و در دو قالب برنامه قابل نصب و سورس‌كد قابل كامپايل از سايت mysql.com به‌صورت رايگان براي انواع سكوها چون ويندوز، لينوكس و مكينتاش قابل دسترس هستند.

شكل 1

مديريت سيستم و MySQL Administrator 
از اين برنامه براي انجام‌دادن عمليات مديريتي  و پيكربندي MySQL استفاده مي‌شود. ويرايش كنوني اين ابزار مديريتي داراي يازده قسمت مختلف است كه هركدام وظيفه خاصي را به عهده دارند (شكل 1) كه برخي از آن‌ها عبارتند از:

Ÿ‌‌Server Information 
در اين قسمت مشخصات سرور ارائه ‌دهنده سرويس‌هاي MySQL مثل نام كامپيوتر، آدرسIP، سيستم عامل، پردازنده و امثال آن براي مدير سيستم نمايش داده مي‌شود.

Ÿ‌Server Control 
در اين پنجره امكان شروع يا توقف سرويس MySQL و كنترل آن وجود دارد. در واقع اين قسمت همان كاري را انجام مي‌دهد كه مركز كنترل سرويس در سيستم عامل به عهده دارد.

Ÿ‌Startup Parameters 
شايد مهم‌ترين و به بياني، مديريتي‌ترين بخش ابزار مذكور، قسمت مربوط به تنظيم پارامترهاي پيكربندي موتورMySQL است. براي كار با اين پنجره تسلط به مفاهيم پايگاه‌هاي داده‌اي و همچنين واژه‌ها و تكنيك‌هاي مديريتيMySQL بسيار ضروري است. در واقع اين زير برنامه از تنظيمات شبكه‌اي چون پورت TCP/IP گرفته تا تنظيمات امنيتي موتور MySQL را انجام مي‌دهد. به‌علا‌وه، تمام پارامترها و تنظيمات مربوط به دو موتور ذخيره‌سازي مشهور يعني MyISAM و InnoDB به‌خصوص تنظيمات مربوط به بافرهاي آن‌ها نيز دراين جا تعريف مي‌شوند.

در قسمت‌هاي ديگر اين پانل نيز پارامترهاي ديگري چون ميزان حافظه نهفته قابل تخصيص به عمليات جست‌وجو، يعني همان Query Cache يا برخي تنظيمات مربوط به عمليات Replication كه مستلزم تخصص كافي مدير سيستم در زمينه‌هاي مربوطه است در اختيار وي قرار داده مي‌شود.

Ÿ‌User Administration 
تعريف نام كاربر، رمز عبور و ساير مشخصات آن، به علاوه تعريف سطوح دسترسي وي به كليه موجوديت‌هاي درون يك بانك اطلاعاتي و ساير تنظيمات كاربر، در اين قسمت انجام مي‌شود.

Ÿ‌Server Connentions 
در اين پانل، اطلاعاتي درمورد كاربران در حال اتصال و كار با بانك‌هاي اطلاعاتي مثل نام كاربر، كامپيوتر در حال استفاده، بانك اطلاعاتي مورد استفاده، نوع كار در حال انجام و ... نمايش داده شده و امكان توقف پردازش‌هاي در حال انجام توسط كاربر به وسيله مكانيسم Kill Process براي مدير بانك اطلاعاتي فراهم گشته است.

Ÿ‌Health 
نمايي از وضعيت فعلي سيستم مثل ميزان استفاده از پردازنده، حافظه، ترافيك داده‌اي در شبكه و خلاصه‌اي از وضعيت فعلي پارامترهاي اوليه‌اي كه در قسمت Startup Variables توسط مدير سيستم تنظيم شده بود و ساير موارد مربوط به كارايي و موقعيت پردازشي سرور در اين قسمت قابل مشاهده است.

ساير قسمت‌ها
قسمت‌هاي ديگر ابزار مديريت سيستم، شامل برنامه‌هايي براي كنترل لاگ‌ها، كنترل وضعيت عمليات Replication  در حال اجرا و دو برنامه جهت عمليات پشتيبان‌گيري و بازاريابي اطلاعات است. در اين زمينه نسخه پنجم MySQL داراي تغييرات بسيار مهم براي پشتيباني كامل از عمليات مذكور است. در اين نسخه امكان انجام‌دادن چهار نوع پشتيبان‌گيري از يك بانك‌اطلاعاتي وجود دارد. ضمن اين‌كه هركدام از اين چهار نوع نيز به نوبه خود تنظيمات بسيار متعددي دارند كه مي‌توانند به مقاصد پشتيبان‌گيري متعددي پاسخگو باشند.
 
حتي اين عمليات براي آن‌كه بتواند دقيقاً مدير سيستم را در پشتيبان‌گيري اجزاي موردنياز و حياتي يك بانك اطلاعاتي ياري دهد، عمليات مذكور را تا حد تك‌‌تك اشياي موجود در بانك مثل يكايك جداول، ديدها، روال‌ها و ساير موجوديت‌ها قابل انجام نموده است؛ ضمن اين‌كه عمليات بازيابي (Restore) اطلاعات از فايل‌هاي پشتيبان نيز به همين صورت قابل انتخاب توسط مدير سيستم است.

مديريت بانك اطلاعاتي و Query Browser 
Query Browser عنوان يك ابزار گرافيكي توانمند براي كار با موجوديت‌هاي درون يك بانك اطلاعاتي است. در واقع با اين ابزار مي‌توان يك بانك‌اطلاعاتي يا همان به اصطلاح Schema را ساخت و موجوديت‌هاي درون آن اعم از جداول، ديدها، روال‌ها و توابع را تعريف كرد. در سمت راست پانل اين ابزار پنجره‌اي به نام Schemata وجود دارد كه محل تعريف و مشاهده بانك‌هاي اطلاعاتي و موجوديت‌هاي درون آن‌هاست. در اين پنجره كاربر قادر خواهد بود با يك راست‌كليك‌ ساده و انتخاب New Schema پايگاه داده جديد خود را تعريف كند و سپس به همين روش به تعريف ساختار دروني آن بپردازد.

شكل 2

براي اين كار كافي است با راستكليك روي نام بانك ايجاد شده، گزينه ‌New Table را انتخاب كنيد. پس از آن پنجره‌اي نمايش داده مي‌شود كه تمام امكانات ساده و پيشرفته‌ براي تعريف يك جدول (ستون‌ها) در آن مشاهده مي‌شود. اين پنجره درعين سادگي، امكان تعريف فيلدهاي يك جدول را به آساني فراهم مي‌كند.

به‌علا‌وه، بخش‌هايي براي انجام‌دادن امور پيشرفته‌اي چون ايندكس‌گذاري روي جدول و انتخاب ايندكس (از بين سه نوع Btree ،Hash ،(Rtree يا حتي انتخاب نوع موتور ذخيره‌سازي مورد استفاده براي كار با داده‌هاي اين جدول در حال ساخت (از بين هفت موتور ذخيره‌سازي مشهور چون ISAM ،InnoDB ،MyISAM ،Memory ،Merge ،NDB ،BDB) و ساير تكنيك‌هاي پيشرفته را نيز دارد.

در سمت چپ اين ابزار نيز محل نوشتن دستورات SQL براي كار با داده‌هاي موجود در جداول بانك اطلاعاتي يا درهنگام ساخت ساير موجوديت‌ها مثل ديدها، روال‌ها و توابع مشاهده مي‌شود. (شكل 2)

شكل 3

مهاجرت و Migration ToolKit
 
با اين همه، مهم‌ترين واژه دنياي پلتفرم‌هاي نرم‌افزاري كه اتفاقا ًMySQL سرمايه‌گذاري و سروصداي زيادي روي آن به راه انداخته، مسئله مهاجرت است.
 
با ابزار Migration Toolkit، يك توسعه‌‌دهنده يا مدير سيستم مي‌تواند بانك اطلاعاتي موجود خود را از يك پلتفرم يا موتور پايگاه داده‌اي ديگر مثل اوراكل، اكسس يا SQLServer به MySQL  انتقال دهد.

اين ابزار با استفاده از فناوري جاوا و توابع موجود در محيط يا پلتفرم اجرايي جاوا (jRE) قادر است بانك‌هاي اطلاعاتي موجود در هر پايگاه داده‌اي را كه از jDBC براي اتصال به آن پشتيباني مي‌كند، به MySQL منتقل كند.
 
در قدم اول مدير سيستم، مبدا و مقصد مهاجرت يك بانك اطلاعاتي را مشخص مي‌كند. آن‌گاه فهرستي از موجوديت‌هاي داخل بانك مبدا نمايان مي‌شود و او مي‌تواند جداول، ديدها و هر چيزي را كه مايل به انتقال به MySQL است، انتخاب كند. با اين كار، ابزار مهاجرت، اسكريپت‌هاي DDL براي ساخت اين موجوديت‌ها در مقصد را آماده مي‌كند. در قدم بعد، يك بانك اطلاعاتي در سرور MySQL (مقصد) ساخته شده و اسكريپت‌هاي DDL در آن‌جا اجرا مي‌شوند. بدين ترتيب يك ساختار مشابه بانك اطلاعاتي مبدا، در سرور MySQL مقصد ساخته شده و درنهايت با يك عمل انتقال داده يا به اصطلاح يك كپي گروهي (Bulk Copy) كليه داده‌هاي موجود در جداول به بانك اطلاعاتي مقصد كپي مي‌شود. (شكل 3)

شكل 4

طراحي بانك اطلاعاتي و MySQL Workbench
 
ميزكار MySQL عنوان برنامه‌اي جديد است كه به وسيله آن مي‌توان جداول و ديدهاي يك بانك اطلاعاتي را طراحي كرد و روابط بين جداول را به‌صورت گرافيكي تعريف نمود.

اين ابزار، پانلي را كه شمايل‌هاي گرافيكي خاصي روي آن ديده مي‌شود، در اختيار طراح بانك قرار مي‌دهد تا وي با استفاده از آن‌ها (كه هر كدام نماينده يك نوع موجوديت در MySQL است)، بانك موردنظر خود را طراحي نمايد و پس از برقراري روابط بين آن‌ها، با يك فرمان، موجوديت‌هاي مذكور را يكباره در بانك اطلاعاتي موردنظر ايجاد كند.

ميزكار MySQL را در واقع مي‌توان هم نوعي برنامه طراحي بانك به حساب آورد و هم نوعي Query Browser  گرافيكي‌تر دانست كه مي‌تواند عملكرد اين برنامه را شفاف‌تر و آسان‌تر نمايد. ضمن اين‌كه مستندات (Document) مناسبي را نيز براي استفاده تحليلگران، برنامه‌نويسان و مديران سيستم پديد آورد. (شكل 4)

شايان ذكر است كه بسياري از فروشندگان محصولات نرم‌افزاري نيز به دليل ماهيت اپن‌سورس بودن MySQL توانسته‌اند ابزارهاي بصري ويژه خود را براي آن تهيه و ارائه  نمايند. به‌عنوان مثال شركت اروپايي SAP نسخه‌اي از يك پايگاه‌داده به نام MAXDB را براساس هسته MySQL ارائه نموده كه داراي ابزارها و محيط مختص به خود است، اما بنيان اصلي آن همان موتور MySQL است. به همين دليل مي‌توان اميدوار بود كه MySQL در آينده نزديك داراي ابزارها و واسط‌هاي كاربر قدرتمندي در رقابت با سايربرنامه ها باشد.

مهيار داعي‌الحق
ماهنامه شبکه - تير ۱۳۸۵ شماره 66

مروری بر ویژگی های نسخه 5.0.1 بانك اطلاعاتی MySQL

مسعود سعیدی
ماهنامه شبکه - آبان ۱۳۸۳ شماره 48

اشاره :

بانك اطلاعاتی معروف MySQL كه اپن‌سورس است، طرفداران زیادی در بین برنامه‌نویسان دارد. MySQL علاوه بر آن‌كه یكی از نمونه‌های بسیار موفق نرم‌افزارهای منبع باز محسوب می‌شود، مثالی از نرم‌افزاری است كه در اروپا (سوئد) پا به عرصه گذاشته است. نخستین نسخه این بانك اطلاعاتی توسط دو نفر از برنامه‌نویسان سوئدی نوشته شد و از آن پس بر اساس مدل نرم‌افزارهای منبع باز توسعه یافت. البته در میانه راه (یعنی در زمان عرضه نسخه سوم این نرم‌افزار) بر اساس توافقی میان شركت MySQL AB از یك سو و شركت معظم SAP (كه دارای خط تحقیق و توسعه بانك اطلاعاتی اختصاصی خود بود) از طرف دیگر، نسخه ویژه‌ای موسوم به MaxDB از تلفیق تكنولوژی‌های این دو شركت در فهرست محصولات MySQL قرار گرفت. اما شركت MySQL همچنان كار توسعه نسخه قبلی و منبع باز نرم‌افزار MySQL را تا این لحظه به موازات MaxDB ادامه داده است.




 



طرف‌داران فلسفه نرم‌افزار‌های منبع باز همواره از MySQL به عنوان نمونه‌ای یاد می‌كنند كه توانسته است به‌خوبی با نمونه‌های بانك‌های اطلاعاتی اختصاصی همانندSQL server كه سرمایه‌گذاری‌های سنگینی برای توسعه آن انجام می‌شود، رقابت كند (هر چند كه مایكروسافت بر اساس یك سیاست كلی تنها رقیب خود را در زمینه بانك‌های اطلاعاتی، محصولا‌ت اوراكل می‌داند و اصولاً توجهی به نرم‌افزارهای منبع باز نمی‌كند). اما واقعیت آن است كه در دنیای برنامه‌نویسی این دو نرم‌افزار در رقابت تنگاتنگ قرار دارند.
آخرین نسخه MySQL همراه مجموعه‌ای از قابلیت‌ها و امكانات عرضه شده است كه آنرا بیش از پیش به‌سمت كاربردهای <بزرگ مقیاس> سوق می‌دهد. برخی از ناظران معتقدند هدف اولیه تغییرات و پیشرفت‌های ارائه شده در نسخه 5 این نرم‌افزار، بیش از هر چیز دیگری معطوف برنامه‌نویسی پیشرفته در كاربردهای گسترده و بزرگ است. یكی از منابع مورداستفاده در تهیه این مقاله در این زمینه چنین بیان می‌كند: <آیا زمان آن فرا رسیده است كه اوراكل باز گردد و به پشت‌سر خود نگاه كند؟> جالب است كه نویسنده در نوشته خود اصلاً اسمی از مایكروسافت و SQL server نیاورده است!


بانك‌اطلاعاتی سرور از نوع Embedded 
اگرچه قابلیت استفاده از این بانك اطلاعاتی به صورت سرور Embedded موضوع جدیدی محسوب ن-م-ی‌ش-ود و از نسخه 4 MySQL به بعد همواره وجودداشته است، اما این ویژگی از سوی كاربران همچنان نسبتاً ناشناخته باقی‌مانده است. استفاده از موتور نرم‌افزاری این بانك اطلاعاتی به صورت Embedded با توجه به آن‌كه این نرم‌افزار از نظر توابع API به‌طور كامل با مدل Client/Server سازگاری دارد، بسیار ساده است. در واقع برای به‌كارگیری این نرم‌افزار به صورت Embedded تنها كافی است تا یك تغییر كوچك در سورس كد (نسبت به روش معمول) اعمال شود. نمونه‌ای از یك قطعه كد به زبان C (كه در گوشه و كنار اینترنت به فراوانی یافت می‌شود) این مطلب را به‌خوبی نمایش می‌دهد. (به قطعه كد شماره یك مراجعه نمایید)




Unionها
یونیون‌ها موجوداتی هستند كه امكان تركیب دو یا چند Query را در یك DataSet فراهم می‌كنند (البته با فرض این كه اسامی ستون، نوع داده و ترتیب فیلد مطابقت داشته باشند). یونیون‌ها مكانیسم بسیار قدرتمندی برای انواع گوناگون جستجو‌های پیشرفته محسوب می‌شوند. به‌طور معمول زمانی یونیون‌ها به‌كار برنامه‌نویسان می‌آیند كه در كاربردهای مورد نظر آن‌ها، دو جدول شامل اطلاعات نسبتاً مرتبط وجود داشته باشند. به عنوان مثال، در صورتی‌كه در ساختار یك بانك اطلاعاتی، یك جدول شامل اطلاعات فروشندگان باشد و جدول دیگری برای ثبت داده‌های شركت‌های فروشنده لوازم ساختمانی به‌كار رفته باشد، می‌توان از یونیون برای جستجوی همزمان در دو جدول و به‌دست آوردن یك مجموعه پاسخ یا result set بهره گرفت.


SubQueryها
از SubQuery‌ها و جداول مشتق شده برای قرار دادن عبارات انتخابی در یك SQL Statement دیگر استفاده می‌شود. مثلاً اگر در بخش FROM عبارت جستجوی خود از یك عبارت SELECT دیگر استفاده كنید، در این صورت، عبارت SELECT خارجی از نتایج به‌دست آمده از عبارت SELECT به‌كار رفته در بخش FROM كلی جستجو، استفاده خواهد كرد. این ویژگی هم یكی از ابزارهای قدرتمندی است كه در كاربردهای پیشرفته به كمك برنامه‌نویسان می‌آید.


عبارات از قبل آماده 
برنامه‌نویسان آشنا با گرامر عبارات ODBC  ازپیش آماده (ODBC Prepared statement) از این پس می‌توانند این ویژگی را در مجموعه API  بانك اطلاعاتی MySQL  كه به زبان C  نوشته است، نیز بیابند. مثلاً:
  SELECT * FROM  customer WHERE annual_sales > ? AND  
  ?= region
اصطلاح عبارت جستجوی فوق آماده یا‌ prepare شد، برنامه‌نویس می‌تواند توسط توابع API نرم‌افزار MySQL  مقادیر گوناگونی را به علامت‌های سؤال‌های به‌كار رفته در عبارت، متصل یا Bind كنند. مزیت عمده پشتیبانی از چنین قابلیتی در آن نهفته است كه دیگر برای هر عبارت جستجویی كه به ازای هر یك از مقادیر متغیر علامت سؤال ایجاد می‌شود، نیازی به تولید مجدد query نخواهد بود. اهمیت این موضوع زمانی بیشتر آشكار می‌گردد كه قرار باشد یك عبارت جستجوی از پیش آماده مكرراً اجرا شود. در این وضعیت‌ به‌دلیل آن‌كه query‌ها فقط یك‌بار ساخته و بهینه‌سازی می‌شوند، سرعت اجرای نرم‌افزار به طرز محسوسی بالا خواهد بود (در واقع سرعت اجرای نرم‌افزار در قیاس با حالت معمول، دچار افت قابل توجهی نخواهد شد).


چندین DataSet در یك فراخوانی
از زمان عرضه نسخه 4.1 نرم‌افزار MySQL، برنامه‌نویسان می‌توانسته‌اند توسط یك فراخوانی، چندینquery را بر روی سرور به اجرا بگذارند. این مطلب به معنی آن است كه نرم‌افزار Client قادر به دریافت چندین resultSet خواهد بود. این قابلیت در مواقعی كه برنامه‌نویس از پیش می‌داند كه چندین جستجو مستقل و ناوابسته به یكدیگر باید در كاربرد مشخصی به اجرا گذاشته شوند، عامل صرفه‌جویی بسیار مفیدی محسوب می‌شود. علاوه بر مواردی كه در بالا مورد بررسی قرار دادیم، این قابلیت زمانی كه آن‌را در كنار ویژگی جدید نسخه 5 این نرم‌افزار یعنی پشتیبانی ازStored Procedure‌ها مورد بررسی قرار دهیم، اهمیت دوچندان خواهد یافت. زیرا می‌دانیم كه هر Stored Procedure ممكن است منجر به تولید  و بازگشت دادن چندین resultSet شود.


Viewها
Viewها برای نخستین بار در نسخه جدید MySQL مورد پشتیبانی قرار گرفته‌اند. Viewها این امكان را برای كاربر فراهم می‌آورند كه بتواند داده‌های مجموعه‌ای از جداول را همانند اطلاعات یك جدول ببیند. واقعیت آن است كه Viewها از دید برنامه‌نویسان از اهمیت چندانی برخوردار نیستند. اما برای مدیران بانك‌های اطلاعاتی، view یك ابزار كارآمد محسوب می‌شود. در آخرین نسخه بانك‌اطلاعاتی MySQL ،view‌ها دارای قابلیت Update شدن هستند.


Stored procedureها و توابع
طرفداران MySQL تا همین اواخر از این‌كه نرم‌افزار بانك‌اطلاعاتی محبوبشان ازStored procedure‌ها پشتیبانی نمی‌كند، دلخور می‌شدند. اما از زمان عرضه نسخه 4، شركت MySQL AB وعده داده بود كه از این قابلیت در نسخه 5 پشتیبانی خواهد كرد. بدین ترتیب برای نخستین بارStored procedureها در نسخه‌های 5 و 5.0.10 به كار گرفته شدند.
یك stored procedure ‌همان‌طور كه از نام آن مشخص می‌شود، دستور فرایند یا تابعی است كه در محل خودِ بانك اطلاعاتی ذخیره‌سازی می‌شود. stored procedure از چندین منظر دارای اهمیت فراوان است. اصولاً یك stored procedure تابعی است كه برنامه‌نویس از آن برای انجام عملیات منطقی پیچیده بر روی داده‌های بانك اطلاعاتی استفاده می‌كند. البته باید توجه داشته باشید كه چنین تابعی در خود بانك اطلاعاتی ذخیره می‌شود. بدین ترتیب خواص متعددی كه به آن اشاره كردیم،‌ در این شرایط تحقق می‌یابند. نخست آن‌كه در یك مدل برنامه‌های كاربردی از نوع Client/server، انجام چنین عملیات پیچیده‌ای به هیچ وجه به سكویی كه بخش Client بر روی آن در حال اجرا خواهد بود، وابسته نیست. نكته دیگر آن‌كه در سیستم‌های شبكه، انجام عملیات پیچیده و سنگین تحت هیچ شرایطی منجر به ایجاد ترافیك در سطح شبكه و در نتیجه ایجاد تأخیر نخواهد شد. زبان مورد استفاده برای نوشتن توابع ذخیره شده در بانك Stored procedure، زبان استانداردی است كه 2003 SQL نام دارد. این زبان همان زبانی است كه بسیاری از بانك‌های اطلاعاتی از آن برای چنین منظور‌هایی استفاده می‌كنند. به عنوان مثال بانك اطلاعاتی معتبر و معروف IBM به نام  DB2 هم از همین زبان برای بیان روتین‌های توابع خود بهره می‌گیرد.

مطلب دیگری كه نباید آن‌را فراموش كرد آن است  كه در نسخه آخر MySQL قابلیت مهمی گنجانده شده است كه امكان بازگرداندن نتایج یك عبارت جستجویSELECT را به‌سمت كلاینت، فراهم می‌كند. در صورتی‌كه نرم‌افزارMySQL از چنین قابلیتی پشتیبانی نمی‌كرد و برنامه‌نویسان ناگزیر می‌شدند تا یك cursor بر روی query باز كنند و نهایتاً یك resultSet بسازند. هرچند كه انجام چنین عملیاتی برای برنامه‌نویسان بانك‌های اطلاعاتی كار دشواری محسوب نمی‌شود، اما با این حال كاری است كه نیاز به توجه كامل برنامه‌نویس برای برگرداندن نتیجه یك query  به كاربر دارد. از آنجایی‌كه در كاربردهای مشخصی، امكان بازگشت چندین resultSet به كاربر متصور است، اهمیت ویژگی مورد بحث در چنین شرایط خاصی بیشتر نمایان خواهد شد. بر همین اساس توصیه می‌شود در چنین شرایطی، حد‌المقدور از نسخه‌های بالاتر از نسخه 4.1 MySQL استفاده شود.
در پروژه‌های بزرگ و پیچیده‌تر،stored procedureها نقش دیگری نیز می‌یابند. معمولاً مرسوم است كه در پروژه‌های بزرگ، یك یا دو نفر از برنامه‌نویسان خبره بانك‌های اطلاعاتی وظیفه می‌یابند تا به حل مسائل پیچیده‌تر بپردازند و حاصل كار خود را به‌صورت یك عبارت SQL و در قالب یك Stored procedure تحویل دهند. بدین ترتیب مابقی برنامه‌نویسان می‌توانند به پیاده‌سازی بخش‌های دیگر پروژه بپردازند.


Replication
اگرچه این ویژگی از دیرباز در نرم‌افزار MySQL  مورد توجه بوده است، در نسخه جدید MySQL پیشرفت‌های قابل توجهی در ارتباط با این موضوع از جهات سرعت اجرا و قابلیت اطمینان صورت گرفته است. ویژگی replication از چندین جهت مهم  تلقی می‌شود.
نخست آن‌كه استفاده از replication تقریباً در اكثر نرم‌افزارهای كاربردی بزرگ مقیاس (كه كاربران متعددی در حال قرائت اطلاعات از جداول هستند)، روش متداولی به‌شمار می‌رود. در چنین شرایطی به‌طور معمول كاهش سرعت اجرای نرم‌افزار كاربردی، هیچ چاره‌ای به‌جز بهره جستن از منابع سخت‌افزاری سریع‌تر نخواهد داشت. اما یك راه‌حل هوشمندانه دیگر نیز برای جبران مسأله سرعت اجرا وجود دارد. در این روش می‌توان یك بانك اطلاعاتی را فقط برای خواندن از اطلاعات به‌كار گرفت و از چندین بانك‌های اطلاعاتی دیگر برای نوشتن و ذخیره اطلاعات استفاده كرد.
كاربرد متداول دیگر replication، ایجاد یك پشتیبان زنده یا Hot Backup از بانك‌های اطلاعاتی به اصطلاح mission critical است. (اصطلاح mission critical به وضعیت‌هایی گفته می‌شود كه در آن‌ها حتی توقف‌های لحظه‌ای نرم‌افزار، منجر به بروز  خسارت خواهد شد. به عنوان مثال، نرم‌افزارهای كنترلی دمای راكتور یك نیروگاه هسته‌ای، تشكیل چنین حالتی دارند. زیرا توقف لحظه‌ای فرایند كنترل دما در چنین كاربردهایی مسلماً بسیار خطرآفرین محسوب می‌شود) سناریوی استفاده ازreplication در تهیه نسخه‌های <پشتیبان زنده> در كاربردهای حساس چنان است كه به محض از كارافتادگی بانك اطلاعاتی اصلی، نسخه‌های پشتیبان، قابلیت در مدار قرار دادن اطلاعات و جایگزین بانك اطلاعاتی اصلی شدن را دارا باشند. در یك طراحی مناسب، استفاده از replication  می‌تواند زمان‌های توقف یا Downtime را به حداقل برساند.


نتیجه‌گیری‌
مسیر تغییر و تحولات و توسعه‌ای كه نرم‌افزار MySQL از نسخه 3 به بعد تا این لحظه طی كرده است، مسیری دشوار و طولانی محسوب می‌شود. اما تنها از طریق طی كردن چنین مسیرهایی یك نرم‌افزار، خصوصاً از نوع بانك‌های اطلاعاتی می‌تواند خود را برای كاربرد در سطوح سازمانی بزرگ (Enterprise)  آماده سازد.

با سپاس از سایت ictna.ir

آموزش MYSQL بخش اول

دوستان عزیز سلام

اگر لینوکس کار هستید و دنبال راه اندازی mysql در حد مقدماتی هستید این مطالب رو که ترجمه و تدوین کردم بصورت خلاصه و مفید میگذارم اینجا تا استفاده کنید.قول میدهم در اردیبهشت ماه قسمت دوم را اضافه کنم.امیدوارم به درد بخور باشه.اگه زحمت نبود نظر بدهید تا از مشکلات با خبر بشم و تصحیح کنم.                                                                                                                "ارادتمند همه"


 

بنام خدا

انواع نسخه های My sql:

Server

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

 

اولین موضوع مهم اینکه میباید پیش از ایجاد database  ها حتما Mysql  خود را start  نمائیم و البته پیش از آن توسط این دستور فرآیند boot time  را صورت دهیم.

root@bigboy tmp]# chkconfig mysqld on

 

این دستورات تیز جهت stop  یا  start یا restart سرویس بکار میروند:

[root@bigboy tmp]# service mysqld start
[root@bigboy tmp]# service mysqld stop
[root@bigboy tmp]# service mysqld restart

 

نکته مهم آنکه restart نمودن سرویس mysql پس از هر بار تغییرات در آن ضروری است.

 

و جهت تست mysql  خود:

[root@bigboy tmp]# pgrep mysqld

 

فابل اصلی پیکر بندی mysql:

/etc/my.cnf

محل data base ها:

/var/lib/mysql/

بطور مثال جهت پایگاه داده با نام azizi که ایجاد نموده ایم فابل آن در مسیر زیر تشکیل میگردد:

azizi /var/lib/mysql/

کاربر root:

هنگامی کـه سـرویـسدهـنده MySQL نصب میشود، بـطور پیشگزیده، هیچ کلمه عبوری برای کاربر ریشه که مدیر سرویسدهنده میباشد، در نظر گرفته نشدهاست. به عنوان مدیر سرویسدهنده، نخستین و تنها تنظیم ضروری که باید بر روی سرویسدهنده MySQL انـجـام دهید، ایجاد یک کلمه عبور برای کاربر ریشه میباشد. به این منظور، باید با استفاده از کنسول سرویسدهـنده، بـه آن وارد شـوید. از این پـس نـیز بـرای انجام تمامی کارها و امور مدیریتی خود بر روی سرویسدهنده مانند ایجاد و مدیریت بانکهای اطلاعاتـی، ایـجاد کـاربران جدید، تنظیم مجوزهای دسـترسـی و غیره از این کنسول استفاده خواهید کرد که جلوتر به آنها خـواهیم پرداخت. برای ورود به کنسول سرویسگیرنده MySQL، دستور زیر را وارد کنید:

# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 823 to server version: 4.0.23_Debian-4-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

 

mysql> grant all privileges on *.* to root@localhost identified by 'password';
Query OK, 0 rows affected (0.19 sec)
mysql>

در دسـتـور بـالا به سـرویسدهـنده مـیگوییم کـه تـمامی مـجوزهای دسترسی را به تمامی بانکهای اطلاعاتی، به کاربر root که از ماشین محلی به سیستم مـتـصل مـیشـود و دارای کلمه عبور password است، اعطاء کن. توجه داشته باشید که بجای password بـایـد کلمه عبور مورد نـظـرتـان را برای کاربر ریشه، وارد نمایید. با تایپ دستور quit از کنسول خارج شده و به پوسته فرمان باز خواهید گشت.

برای ایجاد کاربران جدید و دادن مجوز بر روی یک بانک اطلاعاتی:

mysql> grant all privileges on mydatabase.* to user@localhost identified by 'password';

برای نمایش بانکهای اطلاعاتی موجود بر روی سیستم:

mysql> show databases;

برای نمایش جداول موجود بر روی یک بانک اطلاعاتی خاص:

mysql> use mydatabase;

mysql> show tables;

برای حذف یک بانک اطلاعاتی:

mysql> drop database mydatabase;

برای حذف یک جدول موجود بر روی یک بانک اطلاعاتی خاص:

mysql> use mydatabase;

mysql> drop table mytable;

برای حذف دسترسی یک کاربر بر روی یک بانک اطلاعاتی خاص:

mysql> revoke all privileges on mydatabase.* from user@localhost;

هـمانند آنچه که در پـوسـته فـرمان سیستم دیدیم، کنسول MySQL نیز دستورات تایپ شده را در یک تاریخچه نگهداری میکند. با استفاده از کلیدهای مکان نما در این کنسول، میتوانید بین این دستورات حرکت کرده و در صورت لزوم از آنها استفاده کنید.

 

مانند کاربر sa در ms sqlserver  یا نقشی مانند administrator در ویندوز دارد و جهت تغییر پسورد آن:

[root@tmp bigboy]# mysqladmin -u root password new-password

کاربران با سطح دسترسی محدودتر هم میتوان ایجاد نمود.

 

CLI:command line interpreter

خط فرمان mysql مخصوص به خود است و توسط دستور زیر قابل اجراست:

mysql -u root -p

-u:جهت نام کاربری

-p: جهت رمز عبور

پس از این دستور وارد خط فرمان mysql  میشویم:

mysql>

 

ایجاد یک پایگاه داده با نام azizi:

mysql> create database azizi;

Query OK, 1 row affected (0.00 sec)

نکته : تقریبا تمامی دستورات نیاز به semi-colon دارند.

حذف یک database  با نام  azizi :

mysql> drop database salesdata;

Query OK, 0 rows affected (0.00 sec)

نکته: گاهی اوقات پس از حذف یک پایکاه داده فایل های دادهای آن در مسیر موجود باز هم دیده میشوند هرچند ارتباط با آن قطع شده است.علت این مسئله تغییر در حق دسترسی کامل به آن پایگاه داده توسط کاربرroot بوده است.

Granted full privileges to the database

در این مواقع بهترین راه حل حذف دستی پایگاه داده در مسیر موجود توسط دستورات لینوکس میباشد.

نکته : قبل از حذف دستی یک پایگاه داده توسط دستورات لینوکس حتما مطمئن شوید که موتور سرویسگر mysql  خود را  stop  نموده اید:

[root@bigboy tmp]# service mysqld stop

 

 

محدودیت دسترسی جهت کاربران غیر Root  :

تمامی کاربران در پایگاه داده ای با نام mysql  ذخیره میشوند.جهت اضاف نمودن یک کاربر sql به این database:

sql> grant all privileges on database.* to username@"servername" identified by 'password';

مثال:ایجاد یک کاربر با نام azizi در database با نام barboddata  سرور localhost و با پسورد "123456"که حق کاربری با این پایگاه داده را با تمامی حق و حقوق  خواهد داشت:

sql> grant all privileges on barboddata.* to azizi@"localhost" identified by '123456';

گام بعدی پس از این دستور فلش کردن کاربر است:

The next step is to write the privilege changes to the mysql.sql database using the flush privileges command.

 

sql> flush privileges;

 

دستورات ایجاد Table توسط اجرای یک script :

 

[root@bigboy tmp]# mysql -u root -p salesdata < create_mysql.script

Enter password:

[root@bigboy tmp]#

 

مشاهده پایگاه داده:

 

[root@bigboy tmp]# mysql -u mysqluser -p salesdata

دستور زیر لیس همه پایگاههای داده را نمایش میدهد:

mysql> show databases;

+-----------+

| Database  |

+-----------+

| salesdata |

+-----------+

1 row in set (0.00 sec)

 

mysql>

مشاهده جداول اطلاعاتی درون یک پایگاه داده:

mysql> use salesdata; تغییر پایگاه داده--------------------------->  

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

mysql> show tables;      دستور مشاهده جداول---------------------------->

 

| Tables_in_salesdata |

+---------------------+

| test                |

+---------------------+

1 row in set (0.00 sec)

 

mysql>

مشاهده ساختار جداول یک پایگاه داده:

مثال: مشاهده جدول test در پایگاه داده

mysql> describe test;

+---------------+--------------+------+-----+------------+----------------+

| Field         | Type         | Null | Key | Default    | Extra          |

+---------------+--------------+------+-----+------------+----------------+

| num           | int(11)      |      | PRI | NULL       | auto_increment |

| date_modified | date         |      | MUL | 0000-00-00 |                |

| name          | varchar(50)  |      | MUL |            |                |

| description   | varchar(75)  | YES  |     | NULL       |                |

+---------------+--------------+------+-----+------------+----------------+

6 rows in set (0.00 sec)

 

mysql>

 

 

 

 

 

منتظر قسمت دوم باشید