Тази статия има за цел да запознае потребителите на Linux с основните стъпки при инсталиране и работата с MySQL.
MySQL (произнася се "Май Ес Кю Ел" ) е мого бърза и стабилна система за управление на Бази от Данни, която използва SQL (Structured Query Language).
За Linux MySQL e практически безплатен. За използването му в големи комерсиални проекти трябва да прочетете MySQL лиценза .
На официалната станица www.mysql.com може да откриете актуална информация за MySQL.
Ако вашата 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*
Ако вашата дистрибуция не е RedHat, тогава си свалете файла mysql-3.22.32-pc-linux-gnu-i686.tar.gz, след което влезте в директорията, в която сте свалили файла, и го разархивирайте. Не забравяйте да влезете като root потребител. Ако директорията в която сте сложили файла се казва /tmp, то трябва да напишете следните команди:$ cd /usr/localСлед разархивирането в /usr/local се появява нова директория с дългото име mysql-3.22.32-pc-linux-gnu-i686. Добре е да направите символна връзка към тази директория
$ su -
# tar -zxvf /tmp/mysql-3.22.32-pc-linux-gnu-i686.tar.gz# ln -s mysql-3.22.32-pc-linux-gnu-i686 mysqlТака вашият MySQL се намира в директорията /usr/local/mysql. Това е директорията, която повечето приложения за MySQL използват по подразбиране, а и по този начин избягвате бъдещи главоболия.
След като сте инсталирали MySQL на вашият Linux, трябва да стартирате малък скрипт, който ще създаде основната MySQL база. За целта влезте в директорията, където е инсталиран MySQL, и пишете следната команда:# scripts/mysql_install_dbАко всичко мине без съобщения за грешки, тогава сте готови да стартирате MySQL сървъра.
За да стартирате MySQL сървъра, трябва да влезете в MySQL директорията (в нашия случай /usr/local/mysql) и от там да напишете следната команда:# bin/safe_mysqldАко имате късмет, ще получите съобщение от рода на:Starting mysqld daemon with databases from /usr/local/mysql
За да се стартира автоматично MySQL сървъра, трябва да накарате файла mysql.server да се стартира при началното зареждане на Linux. Как можете да направите това ?
- Под RedHat трябва да напишете следните команди:
# cd /etc/rc.d/init.dСлед което направете файла /etc/rc.d/init.d/mysql изпълним:
# cp /usr/local/mysql/support-files/mysql.server mysql# chmod +x mysqlИ още:# /sbin/chkconfig --del mysql
# /sbin/chkconfig --add mysql- Под Slackware направете следното:
# cd /etc/rc.d/rc.MСега редактирайте файлът /etc/rc.d/rc.local и добавете следният ред, ако го няма:
# cp /usr/local/mysql/support-files/mysql.server rc.mysql
# chmod +x rc.mysql# Starting MySQL
if [ -x /etc/rc.d/rc.mysql ]; then
echo "Trying to start MySQL...."
/etc/rc.d/rc.mysql
else
echo "Unable to start MySQL"
fi- За други дистрибуции може би трябва да направите същото както под RedHat.
Влезте в 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.За да използваме базатаdatabase01, трябва да напишем следното
Your MySQL connection id is 22 to server version: 3.21.29a-gamma-debugType 'help' for help.
mysql> use database01Създаването на таблици в тази база става чрез SQL заявки. Една такава заявка изглежда по следният начин:mysql> create table table01 (field01 integer, field02 char(10));За да бъде изпълнена SQL заявката, тя трябва да завършва с ";". Ако искате да разгледате всички таблици във базата database01, пишете:mysql> show tables;Или всичките полета в таблицата table01:
+----------------------+
| Tables in database01 |
+----------------------+
| table01 |
| table02 |
+----------------------+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');За да видите информацията в table01 пишете:
Query OK, 1 row affected (0.00 sec)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: 0mysql> alter table table01 add column field04 date,add column field05 time;Какъв е резултата от това ?
Query OK, 1 row affected (0.04 sec)
Records: 1 Duplicates: 0 Warnings: 0mysql> 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');Стандатния формат за дата е "гггг-мм-дд". Ако искате да напишете дадена заявка на повече от един ред, натиснете ENTER. Внимавайте да не разделите някой ключова дума при преминаването ви на следвашия ред. Например int и на следвашия ред er ще ви даде грешка. Както вече споменах за край на SQL заявката се използва ";".
Query OK, 1 row affected (0.00 sec)
Става посредством следната 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.