PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزشی © نصب و پیکربندی سرویس‌دهـنده بانک اطلاعاتی MySQL



engeneer_19
18th April 2010, 10:46 PM
© نصب و پیکربندی سرویس‌دهـنده بانک اطلاعاتی MySQL
نصب و پیکربندی سرویس‌دهـنده بانک اطلاعاتی MySQL
امروزه نگهداری بانک‌های اطلاعاتی مختلف، یکی از عمده‌ترین کاربردهای سرویس‌دهنده‌های موجود بـر روی شبـکـه‌ها مـی‌باشد. بـانـک‌های اطلاعاتی اخـتصاصی زیادی بر روی دبیان گنو/ لینوکس قابل استفاده هستند، ولی دو سیستم سـرویـس‌دهنده بـانـک اطلاعـاتـی آزاد و بـازمـتن کـه معمولا به همراه توزیع‌های رایج گنو/ لینوکس ارائه می‌شوند، عبارتند از بانک‌های اطلاعاتی MySQL و PostgreSQL.
ســرویـس‌دهنده بـانـک اطلاعـاتی PostgreSQL سرویس‌دهنده‌ای با قابلیت‌های فنی بسیار بالاست که مـی‌تـوانـد بـا سـرویس‌دهنده‌های اختصـاصـی مانند Oracle رقابت کند. سـرویس‌دهنده MySQL یک سـرویـس‌دهـنده سبکتـر و بـا سرعـت بسـیـار بـالاست که امروزه در سـطوح گستـرده‌ای بـه عنوان سرویس‌دهنده نـرم‌افزارهای تـحـت وب و سـایت‌های وب بـکار گرفته می‌شود. در ایـن مقاله، ما به سـرویـس‌دهنده بـانـک اطلاعـاتی MySQL بر روی توزیع دبیان گنو/لینوکس خـواهـیـم پـرداخت. سـایـت رسـمی MySQL در آدرس http://www.mysql.org قرار دارد کـه در آن مـی‌توانید به تعـداد زیـادی مستـندات راهنما به همراه یک انجمن فعال کاربران دسترسی داشته باشید.
نصب سرویس‌دهنده MySQL
نسـخه پـیش‌گزیده سـرویس‌دهنده MySQL که بر روی دبیان گنو/ لینوکس ۳.۱ موجود است، نسخه ۴ می‌باشد کـه پـایـدار بوده و بسیاری از نرم‌افزارهای کاربردی با آن سازگاری دارند. نسخه جدیدتر این سرویس‌دهنده کـه نـسخه ۴.۱ مـی‌باشد نیز به همراه دبیان گنو/ لینوکس ۳.۱ ارائه شده که در صورت نیاز می‌تـوانید از آن استفاده کنید. نـصب سـرویس‌دهنده بانک اطلاعاتی MySQL بسیار آسان می‌باشد. کـافی است دسـتـور apt-get install mysql-server را وارد نـمایـید. در هـنگام نصب، هشداری در مورد کلمات عبور نـمایش داده شده و سـوالاتـی در مـورد اجـرای خـودکـار سرویس‌دهنده در هنگام بوت سیستم و حذف بانک‌های اطلاعاتی قدیمی موجود بر روی سیستم پرسیده خواهد شد.


# apt-get install mysql-server
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
mysql-server
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/3641kB of archives.
After unpacking 8806kB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously deselected package mysql-server.
(Reading database ... 130011 files and directories currently installed.)
Unpacking mysql-server (from .../mysql-server_4.0.23-4_i386.deb) ...
Setting up mysql-server (4.0.23-4) ...
Starting MySQL database server: mysqld.
Checking for crashed MySQL tables in the background.
برای نـصـب نـسـخه ۴.۱ نـیز می‌توانید از دستور apt-get install mysql-server4.1 استفاده نمایید. البته توجه داشته باشید که در یک زمان تنها یکی از نسخه‌های ۴ یا ۴.۱ را می‌توانید بر روی سرویس‌دهنده خود داشته باشید.
پیکربندی و مدیریت سرویس‌دهنده MySQL
بسـته دبـیـان سـرویس‌دهنده MySQL حـاوی بسیاری از تنظیمات لازم می‌باشد. فایل پیکربندی اصلی سـرویـس‌دهنده MySQL در مسیر etc/mysql/my.cnf/ قرار دارد و در آن تنظیماتی از قبیل شماره درگاه، نـام کاربری کـه سـرویس‌دهنده بـا اسـتـفاده از آن اجرا می‌شود، مسـیر قرار گیری فایل‌های مربوط به بانک‌های اطلاعاتی، فایل‌های ثبت رخـداد و غیره می‌باشد. بسته MySQL دبیان طوری تنظیم شده‌است که پس از نصب سرویس‌دهنده، امکان اتصال به درگاه آن از خارج از سیستم سرویس‌دهنده امکان‌پذیر نخواهد بود. این گزینه در امنیت کلی سرویس‌دهـنده بسیار موثر می‌باشد. نام کاربر و گروهی که هنگام نـصـب بـسته دبـیان سرویس‌دهنده MySQL بر روی سیستم ساخته می‌شود است.
هنگامی کـه سـرویـس‌دهـنده 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 به نمایش در خواهد آمد. گـزیـنه u- در دسـتور بـالا نـمایانگر نام کاربری است. در دستور بالا بـا استفاده از کـاربـر ریـشـه وارد سـرویس‌دهـنـده شده‌ایم. همانطور کـه مـشاهده می‌کنید، هیچ کلمه عبوری از ما در خواست نشده‌است. نحوه استفاده از این دستور به شکل زیر می‌باشد:

# mysql [OPTIONS] [database]
گـزینه‌هـای مـهم قابل استفاده با این دستور عبارتند از گزینه u- که در بالا شرح داده شد و نمایانگر نام کاربری است که مایل هسـتید بـا استفاده از آن به سرویس‌دهنده متصل شوید، گزینه p- که برای ارسال کـلمه عـبور و یا نمایش اعلان درخواست کلمه عبور بر روی سرویس‌دهنده به کار می‌رود. پس ا زاین دو گزینه نیز می‌توانید نام بانک اطلاعاتی را که مایل هستید بر روی آن کار کنید را وارد کنید.
در نخستین قدم، برای اینکه کلمه عبور ریشه را بر روی سرویس‌دهنده تنظیم کنیم، در کنسول MySQL باید دستورات زیر را وارد کنیم:


# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9 to server version: 4.0.23_Debian-4-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
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 وارد می‌کنید، باید علامت سمی کالن یا «;» را قرار دهید. اکنون مجددا سعی می‌کنیم تا با دستور قبل به سرویس‌دهنده متصل شویم:


# mysql -u root
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
هـمـانطور که مشـاهده مـی‌کنید، این بار دیگر امکان دسترسی به سرویس‌دهنده، بدون استفاده از کلمه عبور وجـود ندارد. برای اینکه سرویس‌دهنده هنـگام ورود از ما تقاضای کـلمه عبور نماید، گزینه p- را به دستور فوق اضافه می‌کنیم. به مثال زیر توجه کنید:


# mysql -u root -p
:enter password
این امـکان وجـود دارد تا کلمه عـبور خـود را بلافاصلـه و چسـبـیده به گزینه p- برای سرویس‌دهنده ارسـال کـنید. فقط در این صورت، کلمه عبور بــر روی صفـحـه نـمایش قابل مشاهده خواهد بود که انجام این کار را از نظر امنیتی توصیه نمی‌کنم.
آشنایی بیشتر با کنسول MySQL
کـنسول MySQL خـود دارای تعدادی فرمان داخلی می‌باشد که از آنـهـا بــرای امــور مـدیریتی خود استفاده خواهید کرد. با تایپ دسـتور help در این کنسول، لیستی از این فرامین نمایش داده خواهد شد. به نمونه زیر توجه کنید:

mysql> help
For the complete MySQL Manual online visit:
http://www.mysql.com/documentation
For info on technical support from MySQL developers visit:
http://www.mysql.com/support
For info on MySQL books, utilities, consultants, etc. visit:
http://www.mysql.com/portal
List of all MySQL commands:
(Commands must appear first on line and end with ';')
help (\h) Display this help.
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute a SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
Connection id: 812 (Can be used with mysqladmin kill)
mysql>
دستورات مهم عبارتند از:
exit و quit برای خروج از اعلان فرمان MySQL.
system برای اجرای دستورات سیستمی و خط فرمان از داخل اعلان MySQL,
use برای تـغییر بانـک اطلاعاتـی قـابل اسـتفاده و فـعال کـه فـرامـین SQL بر روی آن اجرا خواهد شد. برای مثال use test بانک اطلاعاتی test را آماده دریافت دستورات خواهد کرد.
دستورات دیگری را که در کنسول MySQL می‌توانید وارد کنید، دستورات زبان SQL می‌باشد. برای این منظور باید با این زبان آشنا باشید. در زیر چند مثال نمایش داده شده‌است:


برای ایجاد بانک‌های اطلاعاتی جدید:

mysql> create database mydatabase;
برای ایجاد کاربران جدید و دادن مجوز بر روی یک بانک اطلاعاتی:

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 نیز دستورات تایپ شده را در یک تاریخچه نگهداری می‌کند. با استفاده از کلیدهای مکان نما در این کنسول، می‌توانید بین این دستورات حرکت کرده و در صورت لزوم از آنها استفاده کنید.
علاوه بر کنـسول MySQL، دستـوری نیـز به نام mysqladmin وجود دارد که از آن می‌توانید برای امور مدیریتی مانند ایجاد بانک‌های اطلاعاتی، تنظیم مجوزهای دسترسی، تنظیم کلمات عبور و غیره استفاده کنید. برای اطلاعات دقیق‌تر می‌توانید به مستندات این دستور مراجعه کنید.
مدیریت سرویس‌دهنده MySQL
بــرای راه‌اندازی و توقف سرویـس‌دهنده MySQL خود در مواقع لزوم می‌توانید از دستور زیر استفاده کنید. گـزیـنه start بـرای راه‌اندازی، گـزیـنه stop بـرای تـوقف و گزینه restart جهت راه‌اندازی مجدد سرویس‌دهنده بکار می‌روند:

# /etc/init.d/mysql
Usage: /etc/init.d/mysql start|stop|restart|reload|force-reload
# /etc/init.d/mysql start
Starting MySQL database server: mysqld.
Checking for crashed MySQL tables in the background.
کـلـیه فـرامـینی که در سـرویـس‌دهــنده MySQL اجــرا مـی‌شوند، در یـک فـایـل ثبت رخداد به نام mysql.log که در مـسـیر var/log/mysql/ قـرار دارد، ثبت می‌شوند. بنابراین در مواقع لزوم می‌توانید این فایل را زیر نظر داشته باشید.

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

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد