ot Slavei Karadjov(20-04-2000)

reiting (80)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Tazi statiia ima za tsel da zapoznae potrebitelite na Linux s osnovnite stupki pri instalirane i rabotata s MySQL.

Sudurzhanie:

Kakvo e MySQL

MySQL (proiznasia se "Mai Es Kyu El" ) e mnogo burza i stabilna sistema za upravlenie na Bazi ot Danni, koiato izpolzva SQL(Structured Query Language).

Za Linux MySQL e prakticheski bezplaten. Za izpolzvaneto mu v golemi komersialni proekti triabva da prochetete MySQL litsenza .

Na ofitsialnata stanitsa www.mysql.com mozhe da otkriete aktualna informatsiia za MySQL.

Instalirane ot RPM paketi

Ako vashata Linux distributsiia e RedHat, nai-dobre shte bude da instalirate MySQL ot RPM paketi. Za tselta triabva da si svalite RPM paketa, koito mozhete da otkriete na adres: http://www.mysql.com. Poslednata versiia e 3.22.32. Ot stranitsata http://www.mysql.com/download_3.22.html svalete sledniia fail:

  • Linkut kum faila se kazva "The server for i386 systems (RedHat)", a failut se kazva
    MySQL-3.22.32-1.i386.rpm
Ako iskate da si svalite razlichni klientski programi za MySQL
  • Linkut kum faila se kazva "Client programs for i386 systems (RedHat)", a failut se kazva MySQL-client-3.22.32-1.i386.rpm
Ako Vashata distributsiia ne e RedHat, togava si svalete faila (mysql-3.22.32-pc-linux-gnu-i686.tar.gz) i prochetete Instalirane na MySQL na distributsii razlichni ot RedHat.

Sled kato svalite RPM paketite, vlezte v direktoriiata, v koiato se namirat paketite, vlezte kato root potrebitel, ako ne ste go napravili i instaliraite paketite posredstvom slednata komanda:

# rpm -Uvh MySQL*

Instalirane na MySQL na distributsii razlichni ot RedHat

Ako vashata distributsiia ne e RedHat, togava si svalete faila mysql-3.22.32-pc-linux-gnu-i686.tar.gz Sled koeto vlezte v direktoriiata, v koiato ste svalili faila i go razarhiviraite. Ne zabraviaite da vlezete kato root potrebitel. Ako direktoriiata, v koiato ste slozhili faila se kazva /tmp, to triabva da napishete slednite komandi:

$ cd /usr/local
$ su
# tar -zxvf /tmp/mysql-3.22.32-pc-linux-gnu-i686.tar.gz

Sled razarhiviraneto v /usr/local se poiaviava nova direktoriia s dulgoto ime mysql-3.22.32-pc-linux-gnu-i686. Dobre e da napravite simvolna vruzka kum tazi direktoriia

# ln -s mysql-3.22.32-pc-linux-gnu-i686 mysql

Taka vashiiat MySQL se namira v direktoriiata /usr/local/mysql. Tova e direktoriiata, koiato povecheto prilozheniia za MySQL izpolzvat po podrazbirane, a i po tozi nachin izbiagvate budeshti glavoboliia.

Suzdavane na osnovnata MySQL baza

Sled kato ste instalirali MySQL, na Vashiia Linux triabva da startirate maluk skript, koito shte suzdade osnovnata MySQL baza. Za tselta vlezte v direktoriiata< kudeto e instaliran MySQL i pishete slednata komanda:

# scripts/mysql_install_db


Ako vsichko mine bez suobshteniia za greshki, togava ste gotovi da startirate MySQL survura.

Startirane na MySQL survura

Za da startirate MySQL survura triabva da vlezete v MySQL direktoriiata( v nashiia sluchai /usr/local/mysql) i ottam da napishete slednata komanda:

# bin/safe_mysqld

Ako imate kusmet shte poluchite suobshtenie ot roda na:

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

Za da se startira avtomatichno MySQL survura, triabva da nakarate faila mysql.server da se startira pri nachalnoto zarezhdane na Linux.

Kak mozhete da napravite tova?

  • Pod RedHat triabva da napishete slednite komandi:
  • # cd /etc/rc.d/init.d
    # cp /usr/local/mysql/support-files/mysql.server mysql

    Sled koeto napravete faila /etc/rc.d/init.d/mysql izpulnim

    # chmod +x mysql

    I oshte:

    # /sbin/chkconfig --del mysql
    # /sbin/chkconfig --add mysql

  • Pod Slackware napravete slednoto:
  • # cd /etc/rc.d/
    # cp /usr/local/mysql/support-files/mysql.server rc.mysql
    # chmod +x rc.mysql

    Sega redaktiraite faila/etc/rc.d/rc.local i dobavete sledniia red ako go niama

    # Startirane na 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

  • Za drugi distributsii mozhe bi triabva da napravite sushtoto, kakto pod RedHat.
  • Suzdavane na prosta baza i razglezhdane na neinata struktura

    Vlezte v bin direktoriiata na MySQL

    #cd /usr/local/mysql/bin

    Sega e vremeto da promenite administrativnata parola. Za tselta napishete slednoto:

    # mysqladmin -u root novataparola

    Ne zabraviaite da zamenite "novataparola" s parolata, koiato zhelaete da izpolzvate!

    Nakaraite MySQL da se podgotvi za suzdavane na nova baza

    #mysqladmin create database01
             Database "database01" created.

    Ako izdade suobshtenie, che parolata na potrebitelia e nepravilna, napishete slednoto:

    #mysqladmin create database01 -u root -p

    Sled koeto programata shte Vi popita za parola. Vuvedete parolata i natisnete klavisha ENTER.

    Startiraite programata /usr/local/mysql/bin/mysql. Ako programata ne Vi pozvoliava da vlezete pishete:

    #/usr/local/mysql/bin/mysql -u root -p

    Za parola vuvezhdate administrativnata parola na MySQL-a.
    Sled koeto triabva da poluchite slednoto suobshtenie:


    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.

    Za da izpolzvame bazata database01, triabva da napishem slednoto:

    mysql> use database01

    Suzdavaneto na tablitsi v tazi baza stava chrez SQL zaiavki. Edna takava zaiavka izglezhda po sledniia nachin:

    mysql> create table table01 (field01 integer,field02 char(10));
             

    Za da bude izpulnena SQL zaiavkata, tia triabva da zavurshva s ";". Ako iskate da razgledate vsichki tablitsi vuv bazata database01 pishete:

    mysql> show tables;
             +----------------------+
             | Tables in database01 |
             +----------------------+
             | table01              |
             | table02              |
             +----------------------+
      

    Ili vsichkite poleta v tablitsata table01

    mysql> show columns from table01;
             +---------+----------+------+-----+---------+-------+
             | Field   | Type     | Null | Key | Default | Extra |
             +---------+----------+------+-----+---------+-------+
             | field01 | int(11)  | YES  |     |         |       |
             | field02 | char(10) | YES  |     |         |       |
             +---------+----------+------+-----+---------+-------+
      

    Dobaviane na informatsiia v tablitsite

    Za da dobavite informatsiia v tablitsite otnovo se izpolzvat SQL zaiavki. Primer za tova e slednata zaiavka:

    mysql> insert into table01 (field01,field02) values (1,'first');
             Query OK, 1 row affected (0.00 sec)
             

    Za da vidite informatsiiata v table01 pishete:

    mysql> select * from table01;
             +---------+---------+
             | field01 | field02 |
             +---------+---------+
             |       1 | first   |
             +---------+---------+
      

    Dobaviane na poleta v tablitsa

    Po edno pole vseki put

    mysql> alter table table01 add column field03 char(20);
             Query OK, 1 row affected (0.04 sec)
             Records: 1  Duplicates: 0  Warnings: 0

    ...ili mnogo poleta navednuzh

    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

    Kakuv e rezultatut ot tova?

    mysql> select * from table01;
             +---------+---------+---------+---------+---------+
             | field01 | field02 | field03 | field04 | field05 |
             +---------+---------+---------+---------+---------+
             |       1 | first   | NULL    | NULL    | NULL    |
             +---------+---------+---------+---------+---------+
      

    Dobaviane na niakolko zapisa navednuzh

    Tazi zaiavka triabva da svurshi rabota

    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)
             

    Standatniiat format za data e "gggg-mm-dd". Ako iskate da napishete dadena zaiavka na poveche ot edin red natisnete ENTER. Vnimavaite da ne razdelite niakoia klyuchova duma pri preminavaneto Vi na sledvashiia red. Naprimer int i na sledvashiia red er shte Vi dade greshka. Kakto veche spomenah za krai na SQL zaiavkata se izpolzva ";".

    Obnoviavane na informatsiiata

    Stava posredstvom slednata SQL zaiavka .

    mysql> update table01 set field03='new info' where field01=1;
             Query OK, 1 row affected (0.00 sec)
             
             

    Ako iskate da obnovite poveche ot edno pole vuv tablitsata

    mysql> update table01 set field04=19991022, field05=062218 where field01=1;
             Query OK, 1 row affected (0.00 sec)

    Za da proverite kakvo se e promenilo v tablitsata pishete:

    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 |
      +---------+-----------+------------------+------------+----------+

    Iztrivane na informatsiia

    Za da iztriete zapis ot tablitsata table01 izpolzvaite slednata zaiavka:

    mysql> delete from table01 where field01=3;
             Query OK, 1 row affected (0.01 sec)

    Rezultatut e:

    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 |
      +---------+---------+----------+------------+----------+          
      

    Kak da izlezete ot programata?

    Pishete :

    mysql> quit
             Bye

    Tova e!

    V zaklyuchenie:

    V zaklyuchenie shte kazha, che tova chetivo triabva da Vi e pomognalo da si instalirate MySQL na vashiiat Linux. Tui katoMySQL raboti posredstvom izpulniavane na SQL komandi, triabva da znaete SQL(Structured Query Language), za da mozhete da napravite neshto. Edno dobro chetivo za SQL e Introduction to Structured Query Language. Triabva da znaete angliiski, estestveno.
    Ima grafichni i web bazirani programki, koito Vi pomagat da pravite tablitsi, bazi, da promeniate,iztrivate ili obnoviavate informatsiia v MySQL survura. Proverete za tiah na freshmeat.net ili www.icewalk.com



    << Upravlenie na paketite pod Slackware | Instalirane i konfigurirane na Samba (chast 3) >>