Wyszukiwanie w witrynie

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.