20 εντολές mysqladmin για διαχείριση MYSQL/MariaDB


Το mysqladmin είναι ένα βοηθητικό πρόγραμμα διαχείρισης βάσης δεδομένων γραμμής εντολών που συνοδεύεται από διακομιστή MySQL/MariaDB, ο οποίος χρησιμοποιείται από τους Διαχειριστές βάσεων δεδομένων για την εκτέλεση ορισμένων βασικών MySQL όπως ορισμός του κωδικού πρόσβασης root, αλλαγή του κωδικού πρόσβασης root, παρακολούθηση διεργασιών mysql, επαναφόρτωση δικαιωμάτων, δημιουργία/απόθεση βάσεων δεδομένων, έλεγχος της κατάστασης διακομιστή, εμφάνιση στατιστικών στοιχείων χρήσης, εξάλειψη ερωτημάτων που εκτελούνται κ.λπ.

Η εντολή για τη χρήση του mysqladmin και της γενικής σύνταξης είναι:

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

Εάν δεν έχετε εγκατεστημένο διακομιστή MySQL/MariaDB ή χρησιμοποιείτε μια παλαιότερη έκδοση του διακομιστή MySQL, τότε σας συνιστούμε να εγκαταστήσετε ή να ενημερώσετε την έκδοση MySQL χρησιμοποιώντας το παρακάτω άρθρα:

  • Τρόπος εγκατάστασης MySQL σε διανομές που βασίζονται σε RHEL
  • Πώς να εγκαταστήσετε το MariaDB σε συστήματα RHEL και Debian

Σε αυτό το άρθρο, συγκεντρώσαμε μερικές πολύ χρήσιμες εντολές «mysqladmin» που χρησιμοποιούνται από τους διαχειριστές συστήματος/βάσης δεδομένων στην καθημερινή τους εργασία. Πρέπει να έχετε εγκατεστημένο στο σύστημά σας διακομιστή MySQL/MariaDB για να εκτελέσετε αυτές τις εργασίες.

1. Πώς να ορίσετε τον κωδικό πρόσβασης ρίζας MySQL

Εάν έχετε μια νέα εγκατάσταση του διακομιστή MySQL/MariaDB, τότε δεν απαιτείται κωδικός πρόσβασης για να τον συνδέσετε ως χρήστη root. Για να ορίσετε τον κωδικό πρόσβασης MySQL για τον χρήστη root, χρησιμοποιήστε την ακόλουθη εντολή.

# mysqladmin -u root password YOURNEWPASSWORD

Προειδοποίηση: Ο ορισμός νέου κωδικού πρόσβασης MYSQL χρησιμοποιώντας το mysqladmin θα πρέπει να θεωρείται ευάλωτος. Σε ορισμένα συστήματα, ο κωδικός πρόσβασής σας γίνεται ορατός σε προγράμματα κατάστασης συστήματος, όπως η εντολή ps που μπορεί να εκτελεστεί από άλλους χρήστες για να γνωρίζουν την κατάσταση των ενεργών διεργασιών σε ένα σύστημα.

2. Πώς να αλλάξετε τον κωδικό πρόσβασης ρίζας MySQL

Εάν θέλετε να αλλάξετε ή να ενημερώσετε τον ριζικό κωδικό πρόσβασης MySQL, τότε πρέπει να πληκτρολογήσετε την ακόλουθη εντολή. Για παράδειγμα, πείτε ότι ο παλιός σας κωδικός πρόσβασης είναι 123456 και θέλετε να τον αλλάξετε με έναν νέο κωδικό πρόσβασης, πείτε xyz123.

# mysqladmin -u root -p123456 password 'xyz123'

3. Πώς να ελέγξετε την κατάσταση του MySQL Server

Για να μάθετε εάν ο διακομιστής MySQL είναι σε λειτουργία και λειτουργεί, χρησιμοποιήστε την ακόλουθη εντολή.

# mysqladmin -u root -p ping

Enter password:
mysqld is alive

4. Πώς μπορώ να ελέγξω ποια έκδοση MySQL εκτελώ

Η ακόλουθη εντολή δείχνει την έκδοση MySQL μαζί με την τρέχουσα κατάσταση λειτουργίας.

# 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. Πώς να μάθετε την τρέχουσα κατάσταση του MySQL Server

Για να μάθετε την τρέχουσα κατάσταση του διακομιστή MySQL, χρησιμοποιήστε την ακόλουθη εντολή. Η εντολή mysqladmin δείχνει την κατάσταση του χρόνου λειτουργίας με την εκτέλεση νημάτων και ερωτημάτων.

# 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. Πώς να ελέγξετε τις μεταβλητές κατάστασης MySQL και τις τιμές τους

Για να ελέγξετε όλη την κατάσταση λειτουργίας των μεταβλητών και τιμών του διακομιστή MySQL, πληκτρολογήστε την ακόλουθη εντολή. Η έξοδος θα είναι παρόμοια με την παρακάτω.

# 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. Πώς να δείτε όλες τις μεταβλητές και τις τιμές του διακομιστή MySQL;

Για να δείτε όλες τις τρέχουσες μεταβλητές και τις τιμές του διακομιστή MySQL, χρησιμοποιήστε την εντολή ως εξής.

# 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. Πώς να ελέγξετε τα ενεργά νήματα του MySQL Server

Η ακόλουθη εντολή θα εμφανίσει όλες τις εκτελούμενες διαδικασίες των ερωτημάτων βάσης δεδομένων 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. Πώς να δημιουργήσετε μια βάση δεδομένων στον MySQL Server

Για να δημιουργήσετε μια νέα βάση δεδομένων στον διακομιστή MySQL, χρησιμοποιήστε την εντολή που φαίνεται παρακάτω.

# 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. Πώς να αποθέσετε μια βάση δεδομένων στον MySQL Server

Για να αποθέσετε μια βάση δεδομένων στον διακομιστή MySQL, χρησιμοποιήστε την ακόλουθη εντολή. Θα σας ζητηθεί να επιβεβαιώσετε πατώντας «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. Πώς να επαναφορτώσετε/ανανεώσετε τα προνόμια MySQL;

Η εντολή reload λέει στον διακομιστή να φορτώσει ξανά τους πίνακες επιχορήγησης και η εντολή refresh ξεπλένει όλους τους πίνακες και ανοίγει ξανά τα αρχεία καταγραφής.

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

12. Πώς να τερματίσετε τον MySQL Server με ασφάλεια

Για να τερματίσετε τη λειτουργία του διακομιστή MySQL με ασφάλεια, πληκτρολογήστε την ακόλουθη εντολή.

mysqladmin -u root -p shutdown

Enter password:

Μπορείτε επίσης να χρησιμοποιήσετε τις ακόλουθες εντολές για την εκκίνηση/διακοπή του διακομιστή MySQL.

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

13. Μερικές χρήσιμες εντολές MySQL Flush

Ακολουθούν μερικές χρήσιμες εντολές flush με την περιγραφή τους.

  • flush-hosts: Ξεπλύνετε όλες τις πληροφορίες κεντρικού υπολογιστή από την προσωρινή μνήμη κεντρικού υπολογιστή.
  • flush-tables: Ξεπλύνετε όλους τους πίνακες.
  • flush-threads: Ξεπλύνετε την προσωρινή μνήμη όλων των νημάτων.
  • flush-logs: Ξεπλύνετε όλα τα αρχεία καταγραφής πληροφοριών.
  • προνόμια εκροής: Επαναλάβετε τη φόρτωση των πινάκων επιχορήγησης (όμοια με την επαναφόρτωση).
  • flush-status: Διαγραφή μεταβλητών κατάστασης.

Ας δούμε αυτές τις εντολές.

# 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. Πώς να σκοτώσετε την Sleeping MySQL Client Process;

Χρησιμοποιήστε την ακόλουθη εντολή για να προσδιορίσετε τη διαδικασία πελάτη 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 |
+----+------+-----------+----+---------+------+-------+------------------+

Τώρα, εκτελέστε την ακόλουθη εντολή με kill και process ID όπως φαίνεται παρακάτω.

# mysqladmin -u root -p kill 5

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

Εάν θέλετε να σκοτώσετε πολλές διεργασίες, περάστε τα αναγνωριστικά διεργασίας με κόμματα διαχωρισμένα όπως φαίνεται παρακάτω.

# mysqladmin -u root -p kill 5,10

15. Πώς να εκτελέσετε πολλές εντολές mysqladmin μαζί

Εάν θέλετε να εκτελέσετε πολλές εντολές ‘mysqladmin’ μαζί, τότε η εντολή θα είναι έτσι.

# 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. Πώς να συνδέσετε τον απομακρυσμένο διακομιστή Mysql

Για να συνδεθείτε στον απομακρυσμένο διακομιστή MySQL, χρησιμοποιήστε τον -h (κεντρικό υπολογιστή)  με τη Διεύθυνση IP του τηλεχειριστηρίου μηχανή.

# mysqladmin -h 172.16.25.126 -u root -p

17. Τρόπος εκτέλεσης εντολών σε απομακρυσμένο διακομιστή MySQL

Ας υποθέσουμε ότι θέλετε να δείτε την κατάσταση του απομακρυσμένου διακομιστή MySQL, τότε η εντολή θα ήταν.

# mysqladmin -h 172.16.25.126 -u root -p status

18. Τρόπος εκκίνησης/διακοπής αναπαραγωγής MySQL σε διακομιστή Slave

Για να ξεκινήσετε/διακόψετε την αναπαραγωγή της MySQL στον εξαρτημένο διακομιστή, χρησιμοποιήστε τις ακόλουθες εντολές.

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

19. Τρόπος αποθήκευσης πληροφοριών εντοπισμού σφαλμάτων του MySQL Server σε αρχεία καταγραφής

Λέει στον διακομιστή να γράψει πληροφορίες εντοπισμού σφαλμάτων σχετικά με κλειδαριές σε χρήση, χρησιμοποιημένη μνήμη και χρήση ερωτημάτων στο αρχείο καταγραφής MySQL, συμπεριλαμβανομένων πληροφοριών σχετικά με τον προγραμματιστή συμβάντων.

# mysqladmin  -u root -p debug

Enter password:

20. Πώς να δείτε τις επιλογές και τη χρήση του mysqladmin

Για να μάθετε περισσότερες επιλογές και τη χρήση της εντολής myslqadmin χρησιμοποιήστε την εντολή βοήθειας όπως φαίνεται παρακάτω. Θα εμφανίσει μια λίστα με τις διαθέσιμες επιλογές.

# mysqladmin --help

Προσπαθήσαμε να συμπεριλάβουμε σχεδόν όλες τις εντολές 'mysqladmin' με τα παραδείγματά τους σε αυτό το άρθρο. ξεχάστε να μοιραστείτε με τους φίλους σας.