20 mysqladmin-opdrachten voor MYSQL/MariaDB-beheer
mysqladmin is een hulpprogramma voor databasebeheer via de opdrachtregel dat wordt geleverd met de MySQL/MariaDB-server, die door Databasebeheerders wordt gebruikt om enkele basistaken uit te voeren >MySQL taken zoals het instellen van het root-wachtwoord, het wijzigen van het root-wachtwoord, het monitoren van mysql-processen, het herladen van privileges, het maken/verwijderen van databases, het controleren van de serverstatus, het tonen van gebruiksstatistieken, het beëindigen van actieve queries, enz.
Het commando om mysqladmin te gebruiken en de algemene syntaxis is:
mysqladmin [options] command [command-arg] [command [command-arg]] ...
Als u geen MySQL/MariaDB-server heeft geïnstalleerd of als u een oudere versie van de MySQL-server gebruikt, raden we u aan de MySQL-versie te installeren of bij te werken met behulp van de volgende artikelen:
- MySQL installeren op op RHEL gebaseerde distributies
- MariaDB installeren in RHEL- en Debian-systemen
In dit artikel hebben we een aantal zeer nuttige ‘mysqladmin’-opdrachten verzameld die door systeem-/databasebeheerders in hun dagelijkse werk worden gebruikt. Om deze taken uit te voeren, moet er een MySQL/MariaDB-server op uw systeem zijn geïnstalleerd.
1. Hoe u een MySQL-rootwachtwoord kunt instellen
Als u een nieuwe installatie van de MySQL/MariaDB-server heeft, heeft u geen wachtwoord nodig om verbinding te maken als rootgebruiker. Om het MySQL wachtwoord voor de rootgebruiker in te stellen, gebruikt u de volgende opdracht.
mysqladmin -u root password YOURNEWPASSWORD
Waarschuwing: het instellen van een nieuw MYSQL-wachtwoord met mysqladmin moet als kwetsbaar worden beschouwd. Op sommige systemen wordt uw wachtwoord zichtbaar voor systeemstatusprogramma's zoals de opdracht ps die door andere gebruikers kan worden uitgevoerd om de status van actieve processen op een systeem te kennen.
2. Hoe u het MySQL-rootwachtwoord kunt wijzigen
Als u het MySQL root-wachtwoord wilt wijzigen of bijwerken, typt u de volgende opdracht. Stel bijvoorbeeld dat uw oude wachtwoord 123456 is en dat u dit wilt wijzigen met een nieuw wachtwoord, bijvoorbeeld xyz123.
mysqladmin -u root -p123456 password 'xyz123'
3. Hoe u de status van MySQL Server kunt controleren
Gebruik de volgende opdracht om erachter te komen of de MySQL-server actief is.
mysqladmin -u root -p ping
Enter password:
mysqld is alive
4. Hoe ik kan controleren welke MySQL-versie ik gebruik
De volgende opdracht toont de MySQL-versie samen met de huidige actieve status.
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. Hoe u de huidige status van MySQL Server kunt achterhalen
Gebruik de volgende opdracht om de huidige status van de MySQL-server te achterhalen. De opdracht mysqladmin toont de status van uptime bij actieve threads en query's.
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-statusvariabelen en hun waarden controleren
Om alle actieve status van MySQL servervariabelen en -waarden te controleren, typt u de volgende opdracht. De uitvoer zou vergelijkbaar zijn met die hieronder.
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. Hoe kunt u alle MySQL-servervariabelen en -waarden bekijken?
Om alle actieve variabelen en waarden van de MySQL-server te zien, gebruikt u de opdracht als volgt.
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. Hoe u actieve threads van MySQL Server kunt controleren
Met de volgende opdracht worden alle actieve processen van MySQL databasequery's weergegeven.
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. Hoe u een database maakt in MySQL Server
Gebruik de onderstaande opdracht om een nieuwe database op de MySQL-server aan te maken.
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. Hoe u een database in MySQL Server kunt neerzetten
Om een database op de MySQL-server neer te zetten, gebruikt u de volgende opdracht. U wordt gevraagd om te bevestigen, druk op ‘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. Hoe MySQL-rechten opnieuw laden/vernieuwen?
De opdracht reload vertelt de server dat de toekenningstabellen opnieuw moeten worden geladen en de opdracht refresh wist alle tabellen en opent de logbestanden opnieuw.
mysqladmin -u root -p reload
mysqladmin -u root -p refresh
12. MySQL Server veilig afsluiten
Om de MySQL-server veilig af te sluiten, typt u de volgende opdracht.
mysqladmin -u root -p shutdown
Enter password:
U kunt ook de volgende opdrachten gebruiken om de MySQL-server te starten/stoppen.
systemctl stop mysqld
systemctl start mysqld
Or
systemctl stop mariadb
systemctl start mariadb
13. Enkele nuttige MySQL-flush-opdrachten
Hieronder volgen enkele nuttige spoelopdrachten met hun beschrijving.
- flush-hosts: Wis alle hostinformatie uit de hostcache.
- flush-tables: Spoel alle tafels door.
- flush-threads: Alle threadcache leegmaken.
- flush-logs: Alle informatielogboeken leegmaken.
- flush-privileges: herlaad de subsidietabellen (hetzelfde als herladen).
- flush-status: statusvariabelen wissen.
Laten we deze opdrachten eens bekijken.
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. Hoe kan ik het Sleeping MySQL-clientproces beëindigen?
Gebruik de volgende opdracht om het slapende MySQL-clientproces te identificeren.
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 |
+----+------+-----------+----+---------+------+-------+------------------+
Voer nu de volgende opdracht uit met kill en process ID, zoals hieronder weergegeven.
mysqladmin -u root -p kill 5
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
Als u meerdere processen wilt beëindigen, geef dan de proces-ID's door met komma's gescheiden, zoals hieronder weergegeven.
mysqladmin -u root -p kill 5,10
15. Meerdere mysqladmin-opdrachten samen uitvoeren
Als je meerdere ‘mysqladmin’-opdrachten tegelijk wilt uitvoeren, dan zou het commando er als volgt uitzien.
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. Hoe u een externe MySQL-server kunt verbinden
Om verbinding te maken met de externe MySQL-server, gebruikt u de -h (host) met het IP-adres van de externe machine.
mysqladmin -h 172.16.25.126 -u root -p
17. Een opdracht uitvoeren op een externe MySQL-server
Stel dat u de status van de externe MySQL-server wilt zien, dan zou het commando zijn.
mysqladmin -h 172.16.25.126 -u root -p status
18. MySQL-replicatie op een slaveserver starten/stoppen
Gebruik de volgende opdrachten om MySQL-replicatie op de slaveserver te starten/stoppen.
mysqladmin -u root -p start-slave
mysqladmin -u root -p stop-slave
19. Hoe u MySQL Server-foutopsporingsinformatie in logboeken kunt opslaan
Het vertelt de server om foutopsporingsinformatie over gebruikte vergrendelingen, gebruikt geheugen en querygebruik naar het MySQL logbestand te schrijven, inclusief informatie over de gebeurtenisplanner.
mysqladmin -u root -p debug
Enter password:
20. Mysqladmin-opties en -gebruik bekijken
Voor meer opties en gebruik van de opdracht myslqadmin gebruikt u de helpopdracht, zoals hieronder weergegeven. Er wordt een lijst met beschikbare opties weergegeven.
mysqladmin --help
We hebben ons best gedaan om bijna alle 'mysqladmin'-opdrachten met hun voorbeelden in dit artikel op te nemen. Als we nog steeds iets hebben gemist, laat het ons dan weten via opmerkingen, en doe dat niet vergeet te delen met je vrienden.