20 poleceń mysqladmin do administracji MYSQL/MariaDB
mysqladmin to narzędzie do administrowania bazą danych z wiersza poleceń, dostarczane z serwerem MySQL/MariaDB, którego używają administratorzy baz danych do wykonywania podstawowych Zadania >MySQL, takie jak ustawianie hasła roota, zmiana hasła roota, monitorowanie procesów mysql, ponowne ładowanie uprawnień, tworzenie/usuwanie baz danych, sprawdzanie stanu serwera, wyświetlanie statystyk użytkowania, kończenie uruchomionych zapytań itp.
Polecenie użycia mysqladmin i ogólna składnia to:
mysqladmin [options] command [command-arg] [command [command-arg]] ...
Jeśli nie masz zainstalowanego serwera MySQL/MariaDB lub używasz starszej wersji serwera MySQL, zalecamy zainstalowanie lub aktualizację wersji MySQL za pomocą następujące artykuły:
- Jak zainstalować MySQL w dystrybucjach opartych na RHEL
- Jak zainstalować MariaDB w systemach RHEL i Debian
W tym artykule zebraliśmy kilka bardzo przydatnych poleceń „mysqladmin”, których używają administratorzy systemów/baz danych w swojej codziennej pracy. Aby wykonać te zadania, w swoim systemie musisz mieć zainstalowany serwer MySQL/MariaDB.
1. Jak ustawić hasło roota MySQL
Jeśli masz świeżą instalację serwera MySQL/MariaDB, nie jest wymagane żadne hasło, aby połączyć się z nim jako użytkownik root. Aby ustawić hasło MySQL dla użytkownika root, użyj następującego polecenia.
mysqladmin -u root password YOURNEWPASSWORD
Ostrzeżenie: ustawienie nowego hasła MYSQL przy użyciu mysqladmin należy uznać za podatne na ryzyko. W niektórych systemach Twoje hasło staje się widoczne dla programów stanu systemu, takich jak polecenie ps, które może zostać wykonane przez innych użytkowników w celu poznania stanu aktywnych procesów w systemie.
2. Jak zmienić hasło roota MySQL
Jeśli chcesz zmienić lub zaktualizować hasło roota MySQL, musisz wpisać następujące polecenie. Załóżmy na przykład, że Twoje stare hasło to 123456 i chcesz je zmienić, podając nowe hasło, powiedz xyz123.
mysqladmin -u root -p123456 password 'xyz123'
3. Jak sprawdzić status serwera MySQL
Aby sprawdzić, czy serwer MySQL jest uruchomiony, użyj następującego polecenia.
mysqladmin -u root -p ping
Enter password:
mysqld is alive
4. Jak sprawdzić, której wersji MySQL używam
Poniższe polecenie pokazuje wersję MySQL wraz z bieżącym stanem działania.
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 sprawdzić aktualny stan serwera MySQL
Aby sprawdzić aktualny stan serwera MySQL, użyj poniższego polecenia. Polecenie mysqladmin pokazuje stan czasu działania z uruchomionymi wątkami i zapytaniami.
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 sprawdzić zmienne statusu MySQL i ich wartości
Aby sprawdzić cały stan działania zmiennych i wartości serwera MySQL, wpisz następujące polecenie. Wynik będzie podobny do poniższego.
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 zobaczyć wszystkie zmienne i wartości serwera MySQL?
Aby zobaczyć wszystkie działające zmienne i wartości serwera MySQL, użyj poniższego polecenia.
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 sprawdzić aktywne wątki serwera MySQL
Poniższe polecenie wyświetli wszystkie uruchomione procesy zapytań do bazy danych 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 utworzyć bazę danych na serwerze MySQL
Aby utworzyć nową bazę danych na serwerze MySQL użyj poniższego polecenia.
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 usunąć bazę danych z serwera MySQL
Aby upuścić bazę danych na serwerze MySQL, użyj następującego polecenia. Zostaniesz poproszony o potwierdzenie, naciśnięciem „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 ponownie załadować/odświeżyć uprawnienia MySQL?
Polecenie reload nakazuje serwerowi ponowne załadowanie tabel grantów, a polecenie refresh opróżnia wszystkie tabele i ponownie otwiera pliki dziennika.
mysqladmin -u root -p reload
mysqladmin -u root -p refresh
12. Jak bezpiecznie zamknąć serwer MySQL
Aby bezpiecznie zamknąć serwer MySQL, wpisz następujące polecenie.
mysqladmin -u root -p shutdown
Enter password:
Możesz także użyć następujących poleceń, aby uruchomić/zatrzymać serwer MySQL.
systemctl stop mysqld
systemctl start mysqld
Or
systemctl stop mariadb
systemctl start mariadb
13. Kilka przydatnych poleceń MySQL Flush
Poniżej znajduje się kilka przydatnych poleceń opróżniania wraz z ich opisem.
- flush-hosts: usuwa wszystkie informacje o hoście z pamięci podręcznej hosta.
- flush-tables: Opłucz wszystkie stoły.
- flush-threads: Opróżnia pamięć podręczną wszystkich wątków.
- Opróżnij dzienniki: Opróżnij wszystkie dzienniki informacyjne.
- flush-privileges: Załaduj ponownie tabele grantów (tak samo, jak przeładuj).
- flush-status: wyczyść zmienne stanu.
Sprawdźmy te polecenia.
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 zabić śpiący proces klienta MySQL?
Użyj poniższego polecenia, aby zidentyfikować uśpiony 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 |
+----+------+-----------+----+---------+------+-------+------------------+
Teraz uruchom następujące polecenie z kill i identyfikatorem procesu, jak pokazano poniżej.
mysqladmin -u root -p kill 5
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
Jeśli chcesz zabić wiele procesów, przekaż identyfikatory procesów oddzielając je przecinkami, jak pokazano poniżej.
mysqladmin -u root -p kill 5,10
15. Jak uruchamiać jednocześnie wiele poleceń mysqladmin
Jeśli chcesz wykonać wiele poleceń „mysqladmin” jednocześnie, polecenie będzie wyglądać następująco.
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 połączyć się ze zdalnym serwerem Mysql
Aby połączyć się ze zdalnym serwerem MySQL, użyj -h (host) z adresem IP zdalnego maszyna.
mysqladmin -h 172.16.25.126 -u root -p
17. Jak wykonać polecenie na zdalnym serwerze MySQL
Załóżmy, że chcesz zobaczyć status zdalnego serwera MySQL, a polecenie będzie takie.
mysqladmin -h 172.16.25.126 -u root -p status
18. Jak rozpocząć/zatrzymać replikację MySQL na serwerze Slave
Aby rozpocząć/zatrzymać replikację MySQL na serwerze podrzędnym, użyj następujących poleceń.
mysqladmin -u root -p start-slave
mysqladmin -u root -p stop-slave
19. Jak przechowywać informacje debugowania serwera MySQL w dziennikach
Nakazuje serwerowi zapisanie informacji debugowania o używanych blokadach, używanej pamięci i użyciu zapytań do pliku dziennika MySQL, w tym informacji o harmonogramie zdarzeń.
mysqladmin -u root -p debug
Enter password:
20. Jak wyświetlić opcje i użycie mysqladmin
Aby dowiedzieć się więcej opcji i użycia polecenia myslqadmin, użyj polecenia help, jak pokazano poniżej. Wyświetli się lista dostępnych opcji.
mysqladmin --help
Dołożyliśmy wszelkich starań, aby uwzględnić w tym artykule prawie wszystkie polecenia „mysqladmin” wraz z przykładami. Jeśli nadal coś przeoczyliśmy, daj nam znać w komentarzach i nie zapomnij podzielić się ze znajomymi.