2014 m. spalio 21 d., antradienis

MYSQL pagrindinės komandos

Instaliavimas (Debian):
$ apt-get install mysql-server
Cenos7/Redhat, detalesnis konfiguravimas, servisų paleidimas
yum install php-mysql mariadb mariadb-server
Prisijungimas
$ mysql -u root -p
Kur paprastai saugoma mysql duomenų bazė?
$ sudo ls -la /var/lib/mysql/
total 28692
drwx------  4 mysql mysql     4096 Spa 21 13:33 .
drwxr-xr-x 76 root  root      4096 Spa 21 13:33 ..
-rw-r--r--  1 root  root         0 Spa 21 13:33 debian-5.5.flag
-rw-rw----  1 mysql mysql 18874368 Spa 21 13:33 ibdata1
-rw-rw----  1 mysql mysql  5242880 Spa 21 13:33 ib_logfile0
-rw-rw----  1 mysql mysql  5242880 Spa 21 13:33 ib_logfile1
drwx------  2 mysql root      4096 Spa 21 13:33 mysql
-rw-rw----  1 root  root         6 Spa 21 13:33 mysql_upgrade_info
drwx------  2 mysql mysql     4096 Spa 21 13:33 performance_schema

Kaip sužinoti mysql versija?
mysql> select version();
+-------------------------+
| version()               |
+-------------------------+
| 5.5.40-0ubuntu0.14.04.1 |
+-------------------------+
1 row in set (0.00 sec)
Duomenų bazių atvaizdavimas: mysql> SHOW databases; +--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
Kaip pradėti naudoti duomenų bazę? mysql> use mysql 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
Dabar galime atspausdinti lenteles. mysql> SHOW tables; +---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
...
| time_zone_transition_type |
| user                      |
+---------------------------+
Kaip atspausdinti iš lentelės visus 'user'? mysql> select * from user;
# Duomenų bazės kūrimas
mysql> create database DBZ;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| DBZ                |
Lentelių kūrimas: mysql> CREATE table veikejai (`vardas` char(20), `ki` char(10), `status` char(5)) ; Query OK, 0 rows affected (0.00 sec)

mysql> SHOW tables; +---------------+
| Tables_in_DBZ |
+---------------+
| veikejai      |
+---------------+
1 row in set (0.00 sec)
Kaip peržiūrėti lentelės savybes? mysql> describe veikejai; +--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| vardas | char(20) | YES  |     | NULL    |       |
| ki     | char(10) | YES  |     | NULL    |       |
| status | char(5)  | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
Kaip įdėti įrašą į lentelę?
mysql> INSERT INTO veikejai VALUES('Krilin', '200', 'good'); Query OK, 1 row affected (0.01 sec)
...
mysql> SELECT * FROM veikejai; +---------+------+--------+
| vardas  | ki   | status |
+---------+------+--------+
| Krilin  | 200  | good   |
| Vežlys  | 12   | good   |
| Freezas | 7000 | bad    |
+---------+------+--------+
3 rows in set (0.00 sec)
Kaip pakeisti eilutės reikšmė? mysql> UPDATE veikejai SET ki=9001 WHERE status='good'; Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> SELECT * FROM veikejai;
+---------+------+--------+
| vardas  | ki   | status |
+---------+------+--------+
| Krilin  | 9001 | good   |
| Vežlys  | 9001 | good   |
| Freezas | 7000 | bad    |
+---------+------+--------+
3 rows in set (0.00 sec)
Įrašo trynimas:
mysql> DELETE FROM veikejai WHERE status='bad'; Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM veikejai;
+---------+------+--------+
| vardas  | ki   | status |
+---------+------+--------+
| Krilin  | 9001 | good   |
| Vežlys  | 9001 | good   |
+---------+------+--------+
2 rows in set (0.00 sec

Mariadb configuravimas Centos7
Prisijungima prie duomenų bazės
mysql -u root -p

Rodo visas duombazes
MariaDB [mysql]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+

Sukuriam naują duomenų bazę:
MariaDB [mysql]> create database ninzes;
Query OK, 1 row affected (0.00 sec)

MariaDB [mysql]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ninzes             |
| performance_schema |
+--------------------+

Suteikiam vezliukas vartotoją suteikiam jam priėjimą prie duombazės "ninzes", slaptažodis "Pica"
MariaDB [mysql]> grant all on ninzes.* to vezliukas@localhost identified by "Pica";

Užkraunam privilegijas.
MariaDB [mysql]> grant all on ninzes.* to vezliukas@localhost identified by "Pica";

prisijungiam prie duombazės
mysql -u vezliukas -p

MariaDB [(none)]> use ninzes;
Database changed
MariaDB [ninzes]> 

MariaDB [ninzes]> create table vezliukai( vezliuko_id tinyint unsigned not null auto_increment primary key, vezliuko_name varchar(50) not null );
Query OK, 0 rows affected (0.01 sec)

tinyint unsigned - naudojami skaičiai nuo 0-255.
not null - būtina reikšmė.
auto_incement - pridės reikšmes automatiškai, didinant jas.
varchar(50) - 50 didžiausias reikšmė.

MariaDB [ninzes]> describe vezliukai;
+---------------+---------------------+------+-----+---------+----------------+
| Field         | Type                | Null | Key | Default | Extra          |
+---------------+---------------------+------+-----+---------+----------------+
| vezliuko_id   | tinyint(3) unsigned | NO   | PRI | NULL    | auto_increment |
| vezliuko_name | varchar(50)         | NO   |     | NULL    |                |
+---------------+---------------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

duomenų bazės sql kodo atspausdinimas
MariaDB [ninzes]> show create table vezliukai;
-------------------------------------------------+
| vezliukai | CREATE TABLE `vezliukai` (
  `vezliuko_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
  `vezliuko_name` varchar(50) NOT NULL,
  PRIMARY KEY (`vezliuko_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

reikšmių pridėjimas:
MariaDB [ninzes]> insert into vezliukai(vezliuko_name) values ("Donatelas"), ("Mikelanzelas"), ("Rafaelis");
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0


Kaip pakeisti pamirštą mysql slaptažodį? sudo /etc/init.d/mysqld stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user set password=PASSWORD("mynewpassword") where User='root';
flush privileges;
quit

# Kaip perkonfiguruoti phpmyadmin?
$ sudo dpkg-reconfigure phpmyadmin