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' με τα παραδείγματά τους σε αυτό το άρθρο. ξεχάστε να μοιραστείτε με τους φίλους σας.