Първи стъпки с MySQL

от Славей Караджов

Тази статия има за цел да запознае потребителите на Linux с основните стъпки при инсталиране и работата с MySQL.

Съдържание

Какво е MySQL

MySQL (произнася се  "Май Ес Кю Ел" ) е мого бърза и стабилна система за управление на Бази от Данни, която използва SQL (Structured Query Language).
За Linux MySQL e практически безплатен. За използването му в големи комерсиални проекти трябва да прочетете MySQL лиценза .
На официалната станица www.mysql.com може да откриете актуална информация за MySQL.

Инсталиране от RPM пакети

Ако вашата Linux дистрибуция е RedHat, най-добре ще бъде да инсталирате MySQL от RPM пакети. За целта трябва да си свалите RPM пакета, който можете  да откриете на адрес http://www.mysql.com. Последната версия е 3.22.32. От страницата http://www.mysql.com/download_3.22.html свалете следния файл: 
Линкът към файла се казва "The server for i386 systems (RedHat)", а файлът се казва MySQL-3.22.32-1.i386.rpm
Ако искате да си свалите различни клиентски програми за MySQL, линкът към файла се казва "Client programs for i386 systems (RedHat)", а файлът се казва MySQL-client-3.22.32-1.i386.rpm. Ако вашата дистрибуция не е RedHat, тогава си свалете файла (mysql-3.22.32-pc-linux-gnu-i686.tar.gz) и прочетете Инсталиране на MySQL на дистрибуции различни от RedHat.
След като свалите RPM пакетите влезте в директорията в която се намират пакетите, влезте като root потребител, ако не сте го направили и инсталирайте пакетите посредством следната команда:
# rpm -Uvh MySQL*

Инсталиране на MySQL на дистрибуции различни от RedHat

Ако вашата дистрибуция не е RedHat, тогава си свалете файла mysql-3.22.32-pc-linux-gnu-i686.tar.gz, след което влезте в директорията, в която сте свалили файла, и го разархивирайте. Не забравяйте да влезете като root потребител. Ако директорията в която сте сложили файла се казва /tmp, то трябва да напишете следните команди:
$ cd /usr/local
$ su -
# tar -zxvf /tmp/mysql-3.22.32-pc-linux-gnu-i686.tar.gz
След разархивирането в /usr/local се появява нова директория с дългото име  mysql-3.22.32-pc-linux-gnu-i686. Добре е да направите символна връзка към тази директория
# ln -s mysql-3.22.32-pc-linux-gnu-i686 mysql
Така вашият MySQL се намира в директорията /usr/local/mysql. Това е директорията, която повечето приложения за MySQL използват по подразбиране, а и по този начин избягвате бъдещи главоболия.

Създаване на оснoвнaте MySQL базa

След като сте инсталирали MySQL на вашият Linux, трябва да стартирате малък скрипт, който ще създаде основната MySQL база. За целта влезте в директорията, където е инсталиран MySQL, и пишете следната команда:
# scripts/mysql_install_db
Ако всичко мине без съобщения за грешки, тогава сте готови да стартирате MySQL сървъра.

Стартиране на MySQL сървъра

За да стартирате MySQL сървъра, трябва да влезете в MySQL директорията (в нашия случай /usr/local/mysql) и от там да напишете следната команда:
# bin/safe_mysqld
Ако имате късмет, ще получите съобщение от рода на: 

Starting mysqld daemon with databases from /usr/local/mysql

За да се стартира автоматично MySQL сървъра, трябва да накарате файла mysql.server да се стартира при началното зареждане на Linux. Как можете да направите това ?

Създаване на проста база и разглеждане на нейната структура

Влезте в bin директорията на MySQL:
# cd /usr/local/mysql/bin
Сега е времето да промените административната парола. За целта напишете следното:
# mysqladmin -u root novataparola
Не забравяйте да замените "novataparola" с паролата която желаете да използвате !
Накарайте MySQL да се подготви за създаване на нова база:
# mysqladmin create database01
        Database "database01" created.
Ако издаде съобщение, че паролата на потребителя е неправилна напишете следното:
# mysqladmin create database01 -u root -p
След което програмата ще ви попита за парола. Въведете паролата и натиснете клавиша ENTER.
Стартирайте програмата /usr/local/mysql/bin/mysql. Ако програмата не ви позволява да влезете пишете:
# /usr/local/mysql/bin/mysql -u root -p
За парола въвеждате административната парола на MySQL-a, след което трябва да получите следното съобщение:
 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 22 to server version: 3.21.29a-gamma-debug

Type 'help' for help.

За да използваме базатаdatabase01, трябва да напишем следното
mysql> use database01
Създаването на таблици в тази база става чрез SQL заявки. Една такава заявка изглежда по следният начин:
mysql> create table table01 (field01 integer, field02 char(10));
За да бъде изпълнена SQL заявката, тя трябва да завършва с ";". Ако искате да разгледате всички таблици във базата database01, пишете:
mysql> show tables;
        +----------------------+
        | Tables in database01 |
        +----------------------+
        | table01              |
        | table02              |
        +----------------------+
Или всичките полета в таблицата table01:
mysql> show columns from table01;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| field01 | int(11)  | YES  |     |         |       |
| field02 | char(10) | YES  |     |         |       |
+---------+----------+------+-----+---------+-------+

Добавяне на информация в таблиците

За да добавите информация в таблиците, отново се използват SQL заявки. Пример за това е следната заявка:
mysql> insert into table01 (field01,field02) values (1,'first');
        Query OK, 1 row affected (0.00 sec)
За да видите информацията в table01 пишете:
mysql> select * from table01;
        +---------+---------+
        | field01 | field02 |
        +---------+---------+
        |       1 | first   |
        +---------+---------+

Добавяне на полета в таблица

По едно поле всеки път:
mysql> alter table table01 add column field03 char(20);
        Query OK, 1 row affected (0.04 sec)
        Records: 1  Duplicates: 0  Warnings: 0
...или много полета наведнъж:
mysql> alter table table01 add column field04 date,add column field05 time;
        Query OK, 1 row affected (0.04 sec)
        Records: 1  Duplicates: 0  Warnings: 0
Какъв е резултата от това ?
mysql> select * from table01;
        +---------+---------+---------+---------+---------+
        | field01 | field02 | field03 | field04 | field05 |
        +---------+---------+---------+---------+---------+
        |       1 | first   | NULL    | NULL    | NULL    |
        +---------+---------+---------+---------+---------+

Добавяне на няколко записа наведнъж

Тази заявка трябва да свърши работа:
mysql> insert into table01 (field01,field02,field03,field04,field05) values (2,'second','another','1999-10-23','10:30:00');
        Query OK, 1 row affected (0.00 sec)
Стандатния формат за дата е "гггг-мм-дд". Ако искате да напишете дадена заявка на повече от един ред, натиснете ENTER. Внимавайте да не разделите някой ключова дума при преминаването ви на следвашия ред. Например int и на следвашия ред er ще ви даде грешка. Както вече споменах за край на SQL заявката се използва ";".

Обновяване на информацията

Става посредством следната SQL заявка .
mysql> update table01 set field03='new info' where field01=1;
        Query OK, 1 row affected (0.00 sec)
Ако искате да обновите повече от едно поле във таблицата:
mysql> update table01 set field04=19991022, field05=062218 where field01=1;
        Query OK, 1 row affected (0.00 sec)
За да проверите какво се е променило в таблицата, пишете:
mysql> select * from table01;
 +---------+-----------+------------------+------------+----------+
 | field01 | field02   | field03          | field04    | field05  |
 +---------+-----------+------------------+------------+----------+
 |       1 | first     | new info         | 1999-10-22 | 06:22:18 |
 |       2 | second    | another          | 1999-10-23 | 10:30:00 |
 |       3 | third one | more foo for you | 1999-10-24 | 10:30:01 |
 +---------+-----------+------------------+------------+----------+

Изтриване на информация

За да изтриете запис от таблицата table01, използвайте следната заявка:
mysql> delete from table01 where field01=3;
        Query OK, 1 row affected (0.01 sec)
Резултатът е:
mysql> select * from table01;
 +---------+---------+----------+------------+----------+
 | field01 | field02 | field03  | field04    | field05  |
 +---------+---------+----------+------------+----------+
 |       1 | first   | new info | 1999-10-22 | 15:29:01 |
 |       2 | second  | another  | 1999-10-23 | 15:29:01 |
 +---------+---------+----------+------------+----------+

Как да излезете от програмата

Пишете:
mysql> quit
        Bye
Това е!

В заключение

В заключение ще кажа, че това четиво трябва да ви е помогнало да си инсталирате MySQL на вашият Linux. Тъй като MySQL работи посредством изпълняване на SQL команди, трябва да знаете SQL ( Structured Query Language), за да можете да направите нещо. Еднo добрo четиво за SQL е "Introduction to Structured Query Language". Трябва да знаете английски естествено.
Има графични и web базирани програмки, които ви помагат да правите таблици, бази, да променяте изтривате или обновявате информация в MySQL сървъра. Проверете за тях на freshmeat.net или www.icewalk.com.

20-04-2000, от Славей Караджов
 
Hosted by uCoz