20 Příkazy mysqladmin pro správu MYSQL/MariaDB
mysqladmin je nástroj pro správu databází z příkazového řádku, který je dodáván se serverem MySQL/MariaDB, který používají správci databáze k provádění některých základních MySQL, jako je nastavení hesla uživatele root, změna hesla uživatele root, sledování procesů mysql, opětovné načtení oprávnění, vytváření/rušení databází, kontrola stavu serveru, zobrazení statistik využití, ukončení spuštěných dotazů atd.
Příkaz k použití mysqladmin a obecná syntaxe je:
mysqladmin [options] command [command-arg] [command [command-arg]] ...
Pokud nemáte nainstalovaný MySQL/MariaDB server nebo používáte starší verzi MySQL serveru, doporučujeme nainstalovat nebo aktualizovat verzi MySQL pomocí následující články:
- Jak nainstalovat MySQL na distribuce založené na RHEL
- Jak nainstalovat MariaDB v systémech RHEL a Debian
V tomto článku jsme sestavili několik velmi užitečných příkazů „mysqladmin“, které používají správci systému/databází při své každodenní práci. K provádění těchto úloh musíte mít v systému nainstalovaný server MySQL/MariaDB.
1. Jak nastavit kořenové heslo MySQL
Pokud máte čerstvou instalaci serveru MySQL/MariaDB, pak tento server pro připojení jako uživatel root nevyžaduje žádné heslo. Chcete-li nastavit heslo MySQL pro uživatele root, použijte následující příkaz.
mysqladmin -u root password YOURNEWPASSWORD
Upozornění: Nastavení nového hesla MYSQL pomocí mysqladmin by mělo být považováno za zranitelné. Na některých systémech se vaše heslo zviditelní programům stavu systému, jako je příkaz ps, který mohou spustit jiní uživatelé, aby zjistili stav aktivních procesů v systému.
2. Jak změnit heslo kořene MySQL
Pokud chcete změnit nebo aktualizovat heslo root MySQL, musíte zadat následující příkaz. Řekněme například, že vaše staré heslo je 123456 a chcete ho změnit na nové heslo, například xyz123.
mysqladmin -u root -p123456 password 'xyz123'
3. Jak zkontrolovat stav serveru MySQL
Chcete-li zjistit, zda je server MySQL v provozu, použijte následující příkaz.
mysqladmin -u root -p ping
Enter password:
mysqld is alive
4. Jak zkontrolovat, kterou verzi MySQL používám
Následující příkaz zobrazuje verzi MySQL spolu s aktuálním stavem běhu.
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. Jak zjistit aktuální stav serveru MySQL
Chcete-li zjistit aktuální stav serveru MySQL, použijte následující příkaz. Příkaz mysqladmin zobrazuje stav uptime se spuštěnými vlákny a dotazy.
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. Jak zkontrolovat stavové proměnné MySQL a jejich hodnoty
Chcete-li zkontrolovat veškerý stav proměnných a hodnot serveru MySQL, zadejte následující příkaz. Výstup by byl podobný tomu níže.
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. Jak zobrazit všechny proměnné a hodnoty serveru MySQL?
Chcete-li zobrazit všechny spuštěné proměnné a hodnoty serveru MySQL, použijte následující příkaz.
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. Jak zkontrolovat aktivní vlákna serveru MySQL
Následující příkaz zobrazí všechny běžící procesy databázových dotazů MySQL.
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. Jak vytvořit databázi na serveru MySQL
Chcete-li vytvořit novou databázi na serveru MySQL, použijte příkaz uvedený níže.
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. Jak přetáhnout databázi na MySQL Server
Chcete-li upustit databázi na MySQL server, použijte následující příkaz. Budete požádáni o potvrzení stisknutí tlačítka „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. Jak znovu načíst/obnovit oprávnění MySQL?
Příkaz reload říká serveru, aby znovu načetl tabulky grantů, a příkaz refresh vyprázdní všechny tabulky a znovu otevře soubory protokolu.
mysqladmin -u root -p reload
mysqladmin -u root -p refresh
12. Jak bezpečně vypnout MySQL Server
Chcete-li bezpečně vypnout server MySQL, zadejte následující příkaz.
mysqladmin -u root -p shutdown
Enter password:
Ke spuštění/zastavení serveru MySQL můžete také použít následující příkazy.
systemctl stop mysqld
systemctl start mysqld
Or
systemctl stop mariadb
systemctl start mariadb
13. Některé užitečné příkazy MySQL Flush
Následuje několik užitečných příkazů pro vyprázdnění s jejich popisem.
- flush-hosts: Vyprázdní všechny informace o hostiteli z mezipaměti hostitele.
- flush-tables: Vyprázdní všechny stoly.
- flush-threads: Vyprázdní mezipaměť všech vláken.
- vyprázdnit protokoly: Vyprázdnit všechny protokoly informací.
- flush-privileges: Znovu načtěte tabulky grantů (stejně jako znovu načtěte).
- flush-status: Vymazat stavové proměnné.
Pojďme se na tyto příkazy podívat.
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. Jak zabít spící proces klienta MySQL?
Pomocí následujícího příkazu identifikujte spící proces klienta MySQL.
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 |
+----+------+-----------+----+---------+------+-------+------------------+
Nyní spusťte následující příkaz s kill a process ID, jak je uvedeno níže.
mysqladmin -u root -p kill 5
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
Pokud chcete zabít více procesů, předejte ID procesů oddělenými čárkami, jak je uvedeno níže.
mysqladmin -u root -p kill 5,10
15. Jak spouštět více příkazů mysqladmin společně
Pokud byste chtěli provést více příkazů „mysqladmin“ společně, příkaz by vypadal takto.
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. Jak připojit vzdálený server MySQL
Chcete-li se připojit ke vzdálenému serveru MySQL, použijte -h (hostitel) s IP adresou vzdáleného stroj.
mysqladmin -h 172.16.25.126 -u root -p
17. Jak provést příkaz na vzdáleném serveru MySQL
Řekněme, že byste chtěli vidět stav vzdáleného MySQL serveru, pak by byl příkaz.
mysqladmin -h 172.16.25.126 -u root -p status
18. Jak spustit/zastavit replikaci MySQL na podřízeném serveru
Chcete-li spustit/zastavit replikaci MySQL na podřízeném serveru, použijte následující příkazy.
mysqladmin -u root -p start-slave
mysqladmin -u root -p stop-slave
19. Jak ukládat informace o ladění serveru MySQL do protokolů
Říká serveru, aby zapsal ladicí informace o používaných zámcích, použité paměti a využití dotazů do souboru protokolu MySQL včetně informací o plánovači událostí.
mysqladmin -u root -p debug
Enter password:
20. Jak zobrazit možnosti a použití mysqladmin
Chcete-li zjistit další možnosti a použití příkazu myslqadmin, použijte příkaz help, jak je uvedeno níže. Zobrazí se seznam dostupných možností.
mysqladmin --help
Snažili jsme se do tohoto článku zahrnout téměř všechny příkazy 'mysqladmin' s jejich příklady. Pokud nám přesto něco uniklo, dejte nám prosím vědět prostřednictvím komentářů a ne zapomeňte sdílet se svými přáteli.