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.

  1. 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.

  1. flush-hosts: Skyl alle værtsoplysninger fra værtscache.
  2. skylletabeller: Skyl alle tabeller.
  3. skylletråde: Skyl alle tråders cache.
  4. flush-logs: Skyl alle informationslogfiler.
  5. flush-privilegier: Genindlæs tildelingstabellerne (samme som omindlæsning).
  6. 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.