20 mysqladmin naredbi za MYSQL/MariaDB administraciju


mysqladmin je uslužni program za administraciju baze podataka sa komandne linije koji dolazi sa MySQL/MariaDB serverom, koji koriste Administratori baze podataka za obavljanje nekih osnovnih MySQL zadaci kao što su postavljanje root lozinke, promjena root lozinke, nadgledanje mysql procesa, ponovno učitavanje privilegija, kreiranje/ispuštanje baza podataka, provjera statusa servera, prikaz statistike korištenja, ukidanje pokrenutih upita itd.

Naredba za korištenje mysqladmin i opća sintaksa je:

mysqladmin [options] command [command-arg] [command [command-arg]] ...

Ako nemate instaliran MySQL/MariaDB server ili koristite stariju verziju MySQL servera, preporučujemo vam da instalirate ili ažurirate MySQL verziju koristeći sljedeći članci:

  • Kako instalirati MySQL na RHEL-bazirane distribucije
  • Kako instalirati MariaDB u RHEL i Debian sisteme

U ovom članku smo sastavili neke vrlo korisne „mysqladmin“ komande koje koriste administratori sistema/baze podataka u svom svakodnevnom radu. Morate imati MySQL/MariaDB server instaliran na vašem sistemu da izvršite ove zadatke.

1. Kako postaviti MySQL root lozinku

Ako imate novu instalaciju MySQL/MariaDB servera, tada nije potrebna nikakva lozinka da biste ga povezali kao root korisnik. Da postavite MySQL lozinku za root korisnika, koristite sljedeću naredbu.

mysqladmin -u root password YOURNEWPASSWORD

Upozorenje: Postavljanje nove MYSQL lozinke pomoću mysqladmin treba smatrati ranjivim. Na nekim sistemima, vaša lozinka postaje vidljiva programima za status sistema kao što je naredba ps koju mogu izvršiti drugi korisnici da bi znali status aktivnih procesa na sistemu.

2. Kako promijeniti MySQL root lozinku

Ako želite promijeniti ili ažurirati MySQL root lozinku, tada morate upisati sljedeću naredbu. Na primjer, recimo da je vaša stara lozinka 123456 i da je želite promijeniti novom lozinkom, recimo xyz123.

mysqladmin -u root -p123456 password 'xyz123'

3. Kako provjeriti status MySQL servera

Da saznate da li je MySQL server pokrenut i radi, koristite sljedeću naredbu.

mysqladmin -u root -p ping

Enter password:
mysqld is alive

4. Kako provjeriti koju verziju MySQL-a koristim

Sljedeća komanda prikazuje verziju MySQL zajedno sa trenutnim statusom rada.

mysqladmin -u root -p version

Enter password: 
mysqladmin  Ver 9.1 Distrib 10.3.32-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab, and others.

Server version		10.3.32-MariaDB
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			18 min 6 sec

Threads: 6  Questions: 20  Slow queries: 0  Opens: 18  Flush tables: 1  
Open tables: 11  Queries per second avg: 0.018

5. Kako saznati trenutni status MySQL servera

Da biste saznali trenutni status MySQL servera, koristite sljedeću naredbu. Komanda mysqladmin prikazuje status uptime sa pokrenutim nitim i upitima.

mysqladmin -u root -p status

Enter password: 
Uptime: 1185  Threads: 6  Questions: 21  Slow queries: 0  Opens: 18  Flush tables: 1
Open tables: 11  Queries per second avg: 0.017

6. Kako provjeriti MySQL statusne varijable i njihove vrijednosti

Da provjerite sav radni status MySQL serverskih varijabli i vrijednosti, unesite sljedeću naredbu. Izlaz bi bio sličan onome ispod.

mysqladmin -u root -p extended-status

Enter password: 
+--------------------------------------------------------------+
| Variable_name                          | Value               |
+--------------------------------------------------------------+
| Aborted_clients                        | 0                   |
| Aborted_connects                       | 2                   |
| Access_denied_errors                   | 2                   |
| Acl_column_grants                      | 0                   |
| Acl_database_grants                    | 0                   |
| Acl_function_grants                    | 0                   |
| Acl_procedure_grants                   | 0                   |
| Acl_package_spec_grants                | 0                   |
| Acl_package_body_grants                | 0                   |
| Acl_proxy_users                        | 2                   |
| Acl_role_grants                        | 0                   |
| Acl_roles                              | 0                   |
| Acl_table_grants                       | 0                   |
| Acl_users                              | 4                   |
| Aria_pagecache_blocks_not_flushed      | 0                   |
| Aria_pagecache_blocks_unused           | 15706               |
| Aria_pagecache_blocks_used             | 0                   |
| Aria_pagecache_read_requests           | 0                   |
| Aria_pagecache_reads                   | 0                   |
| Aria_pagecache_write_requests          | 0                   |

...

7. Kako vidjeti sve varijable i vrijednosti MySQL servera?

Da vidite sve aktivne varijable i vrijednosti MySQL servera, koristite naredbu kako slijedi.

mysqladmin  -u root -p variables

Enter password:
+--------------------------------------------+-----------------------------+
| Variable_name                              | Value                       |
+--------------------------------------------+-----------------------------+
| auto_increment_increment                   | 1                           |
| auto_increment_offset                      | 1                           |
| autocommit                                 | ON                          |
| automatic_sp_privileges                    | ON                          |
| back_log                                   | 50                          |
| basedir                                    | /usr                        |
| big_tables                                 | OFF                         |
| binlog_cache_size                          | 32768                       |
| binlog_direct_non_transactional_updates    | OFF                         |
| binlog_format                              | STATEMENT                   |
| binlog_stmt_cache_size                     | 32768                       |
| bulk_insert_buffer_size                    | 8388608                     |
| character_set_client                       | latin1                      |
| character_set_connection                   | latin1                      |
| character_set_database                     | latin1                      |
| character_set_filesystem                   | binary                      |
| character_set_results                      | latin1                      |
| character_set_server                       | latin1                      |
| character_set_system                       | utf8                        |
| character_sets_dir                         | /usr/share/mysql/charsets/  |
| collation_connection                       | latin1_swedish_ci           |
+---------------------------------------------------+----------------------+
...

8. Kako provjeriti aktivne niti na MySQL serveru

Sljedeća komanda će prikazati sve pokrenute procese MySQL upita baze podataka.

mysqladmin -u root -p processlist

Enter password: 
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| Id | User        | Host      | db | Command | Time | State                    | Info             | Progress |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| 2  | system user |           |    | Daemon  |      | InnoDB purge coordinator |                  | 0.000    |
| 1  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 4  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 3  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 5  | system user |           |    | Daemon  |      | InnoDB shutdown handler  |                  | 0.000    |
| 20 | root        | localhost |    | Query   | 0    | Init                     | show processlist | 0.000    |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+

9. Kako kreirati bazu podataka u MySQL serveru

Da kreirate novu bazu podataka na MySQL serveru, koristite naredbu prikazanu ispod.

mysqladmin -u root -p create tecmint
Enter password: 

mysql -u root -p

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 22
Server version: 10.3.32-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab, and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| tecmint |
+--------------------+
4 rows in set (0.001 sec)

10. Kako ispustiti bazu podataka u MySQL Server

Za ispuštanje baze podataka na MySQL server, koristite sljedeću naredbu. Od vas će se tražiti da potvrdite pritiskom na „y“.

mysqladmin -u root -p drop tecmint

Enter password: 
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'tecmint' database [y/N] y
Database "tecmint" dropped

11. Kako ponovo učitati/osvježiti MySQL privilegije?

Komanda reload govori serveru da ponovo učita tabele odobrenja, a naredba refresh čisti sve tabele i ponovo otvara datoteke evidencije.

mysqladmin -u root -p reload
mysqladmin -u root -p refresh

12. Kako bezbedno isključiti MySQL server

Da biste sigurno isključili MySQL server, unesite sljedeću naredbu.

mysqladmin -u root -p shutdown

Enter password:

Također možete koristiti sljedeće komande za pokretanje/zaustavljanje MySQL servera.

systemctl stop mysqld
systemctl start mysqld
Or
systemctl stop mariadb
systemctl start mariadb

13. Neke korisne MySQL Flush komande

Slijede neke korisne naredbe za ispiranje s njihovim opisom.

  • flush-hosts: Ispraznite sve informacije o hostu iz keša hosta.
  • tablice za ispiranje: Ispraznite sve tabele.
  • flush-threads: Ispraznite keš sve niti.
  • flush-logs: Ispraznite sve evidencije informacija.
  • flush-privileges: Ponovno učitajte tabele odobrenja (isto kao i ponovno učitavanje).
  • flush-status: Obrišite varijable statusa.

Pogledajmo ove komande.

mysqladmin -u root -p flush-hosts
mysqladmin -u root -p flush-tables
mysqladmin -u root -p flush-threads
mysqladmin -u root -p flush-logs
mysqladmin -u root -p flush-privileges
mysqladmin -u root -p flush-status

14. Kako ubiti Sleeping MySQL klijentski proces?

Koristite sljedeću naredbu za identifikaciju klijentskog procesa MySQL u mirovanju.

mysqladmin -u root -p processlist

Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 5  | root | localhost |    | Sleep   | 14   |       |			 |
| 8  | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

Sada pokrenite sljedeću naredbu sa kill i process ID kao što je prikazano ispod.

mysqladmin -u root -p kill 5

Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

Ako želite ubiti više procesa, proslijedite ID-ove procesa sa zarezima odvojenim kao što je prikazano ispod.

mysqladmin -u root -p kill 5,10

15. Kako zajedno pokrenuti više mysqladmin komandi

Ako želite da izvršite više naredbi „mysqladmin“ zajedno, tada bi komanda bila ovakva.

mysqladmin  -u root -p processlist status version

Enter password: 
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| Id | User        | Host      | db | Command | Time | State                    | Info             | Progress |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| 1  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 2  | system user |           |    | Daemon  |      | InnoDB purge coordinator |                  | 0.000    |
| 4  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 3  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 5  | system user |           |    | Daemon  |      | InnoDB shutdown handler  |                  | 0.000    |
| 9  | root        | localhost |    | Query   | 0    | Init                     | show processlist | 0.000    |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
Uptime: 173  Threads: 6  Questions: 4  Slow queries: 0  Opens: 18  Flush tables: 1  Open tables: 11  Queries per second avg: 0.023
mysqladmin  Ver 9.1 Distrib 10.3.32-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab, and others.

Server version		10.3.32-MariaDB
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			2 min 53 sec

Threads: 6  Questions: 4  Slow queries: 0  Opens: 18  Flush tables: 1  Open tables: 11  Queries per second avg: 0.023

16. Kako povezati udaljeni Mysql server

Za povezivanje na udaljeni MySQL server, koristite -h (host)  sa IP adresom udaljenog mašina.

mysqladmin -h 172.16.25.126 -u root -p

17. Kako izvršiti naredbu na udaljenom MySQL serveru

Recimo da želite da vidite status udaljenog MySQL servera, tada bi komanda bila.

mysqladmin -h 172.16.25.126 -u root -p status

18. Kako pokrenuti/zaustaviti MySQL replikaciju na slave serveru

Za pokretanje/zaustavljanje MySQL replikacije na slave serveru koristite sljedeće naredbe.

mysqladmin  -u root -p start-slave
mysqladmin  -u root -p stop-slave

19. Kako pohraniti informacije o otklanjanju grešaka MySQL servera u dnevnike

On govori serveru da zapiše informacije o otklanjanju grešaka o korištenim zaključavanjima, korištenoj memoriji i korištenju upita u MySQL datoteku dnevnika, uključujući informacije o planeru događaja.

mysqladmin  -u root -p debug

Enter password:

20. Kako pogledati mysqladmin opcije i upotrebu

Da biste saznali više opcija i upotrebe naredbe myslqadmin, koristite naredbu za pomoć kao što je prikazano ispod. Prikazaće se lista dostupnih opcija.

mysqladmin --help

Dali smo sve od sebe da uključimo skoro sve naredbe 'mysqladmin' sa njihovim primjerima u ovom članku. Ako smo ipak nešto propustili, javite nam putem komentara i nemojte zaboravite podijeliti sa svojim prijateljima.