20 MySQL (Mysqladmin) kommandoer til databaseadministration i Linux
mysqladmin er et kommandolinjeprogram, der leveres med MySQL-server, og det bruges af databaseadministratorer til let at udføre nogle grundlæggende MySQL-opgaver såsom at indstille root-adgangskode, ændre root-adgangskode, overvåge mysql-processer, genindlæse privilegier, kontrollere serverstatus osv.
I denne artikel har vi samlet nogle meget nyttige 'mysqladmin' kommandoer, der bruges af system-/databaseadministratorer i deres daglige arbejde. Du skal have MySQL-server installeret på dit system for at udføre disse opgaver.
Hvis du ikke har MySQL-server installeret, eller hvis du bruger ældre version af MySQL-server, anbefaler vi dig alle at installere eller opdatere din version ved at følge nedenstående artikel.
- Installation af MySQL 5.5.28-server på RHEL/CentOS/Fedora
1. Hvordan indstilles MySQL-rodadgangskode?
Hvis du har ny installation af MySQL-serveren, kræves der ingen adgangskode for at oprette forbindelse som root-bruger. For at indstille MySQL-adgangskode til rodbruger skal du bruge følgende kommando.
# mysqladmin -u root password YOURNEWPASSWORD
2. Hvordan ændres MySQL-rodadgangskode?
Hvis du vil ændre eller opdatere MySQL-rodadgangskode, skal du skrive følgende kommando. Lad os f.eks. Sige, at din gamle adgangskode er 123456, og at du vil ændre den med en ny adgangskode, siger xyz123.
mysqladmin -u root -p123456 password 'xyz123'
3. Hvordan kontrolleres, at MySQL Server kører?
Brug følgende kommando for at finde ud af, om MySQL-serveren er i gang.
# mysqladmin -u root -p ping Enter password: mysqld is alive
4. Hvordan kontrolleres hvilken MySQL-version jeg kører?
Den følgende kommando viser MySQL-version sammen med den aktuelle kørselsstatus.
# mysqladmin -u root -p version Enter password: mysqladmin Ver 8.42 Distrib 5.5.28, for Linux on i686 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.5.28 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 7 days 14 min 45 sec Threads: 2 Questions: 36002 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.059
5. Hvordan finder jeg ud af den aktuelle status på MySQL-serveren?
Brug følgende kommando for at finde ud af den aktuelle status på MySQL-serveren. Kommandoen mysqladmin viser status for oppetid med kørende tråde og forespørgsler.
# mysqladmin -u root -ptmppassword status Enter password: Uptime: 606704 Threads: 2 Questions: 36003 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.059
6. Hvordan kontrolleres status for alle MySQL Server Variabler og værdier?
For at kontrollere alle kørende status for MySQL-servervariabler og -værdier, skriv følgende kommando. Outputtet svarer til nedenunder.
# mysqladmin -u root -p extended-status Enter password: +------------------------------------------+-------------+ | Variable_name | Value | +------------------------------------------+-------------+ | Aborted_clients | 3 | | Aborted_connects | 3 | | Binlog_cache_disk_use | 0 | | Binlog_cache_use | 0 | | Binlog_stmt_cache_disk_use | 0 | | Binlog_stmt_cache_use | 0 | | Bytes_received | 6400357 | | Bytes_sent | 2610105 | | Com_admin_commands | 3 | | Com_assign_to_keycache | 0 | | Com_alter_db | 0 | | Com_alter_db_upgrade | 0 | | Com_alter_event | 0 | | Com_alter_function | 0 | | Com_alter_procedure | 0 | | Com_alter_server | 0 | | Com_alter_table | 0 | | Com_alter_tablespace | 0 | +------------------------------------------+-------------+
7. Hvordan ser jeg alle MySQL-servervariabler og -værdier?
For at se alle kørende variabler og værdier på MySQL-serveren skal du bruge kommandoen som følger.
# 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. Hvordan kontrolleres hele den kørende proces på MySQL-serveren?
Den følgende kommando viser alle kørende processer i MySQL-databaseforespørgsler.
# mysqladmin -u root -p processlist Enter password: +-------+---------+-----------------+---------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-------+---------+-----------------+---------+---------+------+-------+------------------+ | 18001 | rsyslog | localhost:38307 | rsyslog | Sleep | 5590 | | | | 18020 | root | localhost | | Query | 0 | | show processlist | +-------+---------+-----------------+---------+---------+------+-------+------------------+
9. Hvordan oprettes en database på MySQL-serveren?
For at oprette en ny database på MySQL-serveren skal du bruge kommandoen som vist nedenfor.
# mysqladmin -u root -p create databasename Enter password:
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 18027 Server version: 5.5.28 MySQL Community Server (GPL) by Remi Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | databasename | | mysql | | test | +--------------------+ 8 rows in set (0.01 sec) mysql>
10. Hvordan slipper jeg en database i MySQL-serveren?
Brug følgende kommando for at droppe en database i MySQL-serveren. Du bliver bedt om at bekræfte, tryk på 'y'.
# mysqladmin -u root -p drop databasename 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 'databasename' database [y/N] y Database "databasename" dropped
11. Hvordan genindlæses/opdateres MySQL-privilegier?
Reload-kommandoen beder serveren om at genindlæse tildelingstabellerne. Opdateringskommandoen skyller alle tabeller og åbner logfilerne igen.
# mysqladmin -u root -p reload; # mysqladmin -u root -p refresh
12. Hvordan lukkes MySQL-server sikkert ned?
For at lukke MySQL-server sikkert, skal du skrive følgende kommando.
mysqladmin -u root -p shutdown Enter password:
Du kan også bruge følgende kommandoer til at starte/stoppe MySQL-serveren.
# /etc/init.d/mysqld stop # /etc/init.d/mysqld start
13. Nogle nyttige MySQL Flush-kommandoer
Følgende er nogle nyttige skyllekommandoer med deres beskrivelse.
- flush-hosts: Skyl alle værtsoplysninger fra værtscache.
- skylletabeller: Skyl alle tabeller.
- skylletråde: Skyl alle tråders cache.
- flush-logs: Skyl alle informationslogfiler.
- flush-privilegier: Genindlæs tildelingstabellerne (samme som omindlæsning).
- skyl-status: Ryd statusvariabler.
# 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. Hvordan dræber jeg Sleeping MySQL Client Process?
Brug følgende kommando til at identificere sovende MySQL-klientproces.
# 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 | +----+------+-----------+----+---------+------+-------+------------------+
Kør nu følgende kommando med kill og process ID som vist nedenfor.
# mysqladmin -u root -p kill 5 Enter password: +----+------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+----+---------+------+-------+------------------+ | 12 | root | localhost | | Query | 0 | | show processlist | +----+------+-----------+----+---------+------+-------+------------------+
Hvis du kan lide at dræbe flere processer, skal du sende proces-id'erne med komma adskilt som vist nedenfor.
# mysqladmin -u root -p kill 5,10
15. Hvordan køres flere mysqladmin-kommandoer sammen?
Hvis du gerne vil udføre flere 'mysqladmin' kommandoer sammen, så vil kommandoen være sådan.
# mysqladmin -u root -p processlist status version Enter password: +----+------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+----+---------+------+-------+------------------+ | 8 | root | localhost | | Query | 0 | | show processlist | +----+------+-----------+----+---------+------+-------+------------------+ Uptime: 3801 Threads: 1 Questions: 15 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.003 mysqladmin Ver 8.42 Distrib 5.5.28, for Linux on i686 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.5.28 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 1 hour 3 min 21 sec Threads: 1 Questions: 15 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.003
16. Sådan oprettes forbindelse til mysql-server på fjernbetjening
For at forbinde ekstern MySQL-server skal du bruge -h (vært) med IP-adresse på den eksterne maskine.
# mysqladmin -h 172.16.25.126 -u root -p
17. Sådan udføres kommandoen på den eksterne MySQL-server
Lad os sige, at du gerne vil se status for den eksterne MySQL-server, så ville kommandoen være.
# mysqladmin -h 172.16.25.126 -u root -p status
18. Hvordan starter/stopper MySQL replikering på en slave server?
For at starte/stoppe MySQL-replikering på salveserver skal du bruge følgende kommandoer.
# mysqladmin -u root -p start-slave
# mysqladmin -u root -p stop-slave
19. Hvordan gemmes MySQL-server-fejlretningsoplysninger i logfiler?
Den fortæller serveren at skrive fejlretningsoplysninger om låse i brug, brugt hukommelse og forespørgsel til MySQL-logfilen inklusive oplysninger om begivenhedsplanlægning.
# mysqladmin -u root -p debug Enter password:
20. Sådan får du vist mysqladmin muligheder og brug
For at finde ud af flere muligheder og brug af myslqadmin-kommandoen skal du bruge hjælpekommandoen som vist nedenfor. Det viser en liste over tilgængelige indstillinger.
# mysqladmin --help
Vi har forsøgt vores bedste for at inkludere næsten alle 'mysqladmin' kommandoer med deres eksempler i denne artikel. Hvis vi stadig har gået glip af noget, så lad os det vide via kommentarer og glem ikke at dele med dine venner.