用于 MYSQL/MariaDB 数据库管理的 20 个 mysqladmin 命令
mysqladmin是MySQL/MariaDB服务器附带的命令行数据库管理实用程序,数据库管理员使用它来执行一些基本的MySQL任务,例如设置 root 密码、更改 root 密码、监控 mysql 进程、重新加载权限、创建/删除数据库、检查服务器状态、显示使用情况统计数据、终止正在运行的查询等。
使用mysqladmin的命令和一般语法是:
# mysqladmin [options] command [command-arg] [command [command-arg]] ...
如果您尚未安装MySQL/MariaDB服务器或者您正在使用旧版本的MySQL服务器,那么我们建议您使用以下文章安装或更新 MySQL 版本:
在本文中,我们汇编了一些非常有用的“ mysqladmin ”命令,这些命令由系统/数据库管理员在日常工作中使用。您必须在系统上安装MySQL/MariaDB服务器才能执行这些任务。
1.如何设置 MySQL Root 密码
如果您全新安装了MySQL/MariaDB服务器,则不需要任何密码即可以 root 用户身份连接。要为 root 用户设置MySQL密码,请使用以下命令。
# mysqladmin -u root password YOURNEWPASSWORD
警告:使用mysqladmin设置新的 MYSQL 密码应被视为易受攻击。在某些系统上,您的密码对系统状态程序(例如其他用户可能执行的ps 命令)可见,以了解系统上活动进程的状态。
2.如何更改 MySQL Root 密码
如果您想更改或更新MySQL根密码,则需要输入以下命令。例如,假设您的旧密码是123456并且您想用新密码xyz123更改它。
# mysqladmin -u root -p123456 password 'xyz123'
3.如何检查MySQL服务器的状态
要查明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 服务器的当前状态
要了解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服务器的活动线程
以下命令将显示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 服务器中创建数据库
要在MySQL服务器中创建新数据库,请使用下面显示的命令。
# mysqladmin -u root -p create example 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 | | example | +--------------------+ 4 rows in set (0.001 sec)
10.如何在 MySQL 服务器中删除数据库
要在MySQL服务器中删除数据库,请使用以下命令。系统将要求您按“ y ”确认。
# mysqladmin -u root -p drop example 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 'example' database [y/N] y Database "example" dropped
11.如何重新加载/刷新 MySQL 权限?
reload命令告诉服务器重新加载授权表,refresh命令刷新所有表并重新打开日志文件。
# mysqladmin -u root -p reload # mysqladmin -u root -p refresh
12.如何安全关闭 MySQL 服务器
要安全关闭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-hosts:从主机缓存中清除所有主机信息。
- flush-tables:刷新所有表。
- flush-threads:刷新所有线程缓存。
- flush-logs:刷新所有信息日志。
- flush-privileges:重新加载授权表(与reload相同)。
- 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.如何终止休眠的 MySQL 客户端进程?
使用以下命令来识别休眠的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和进程 ID运行以下命令,如下所示。
# mysqladmin -u root -p kill 5 Enter password: +----+------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+----+---------+------+-------+------------------+ | 12 | root | localhost | | Query | 0 | | show processlist | +----+------+-----------+----+---------+------+-------+------------------+
如果您想终止多个进程,请传递用逗号分隔的进程 ID,如下所示。
# 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 复制
要在从属服务器上启动/停止MySQL 复制,请使用以下命令。
# mysqladmin -u root -p start-slave # mysqladmin -u root -p stop-slave
19.如何将 MySQL 服务器调试信息存储到日志中
它告诉服务器将有关正在使用的锁、已使用的内存和查询使用情况的调试信息写入MySQL日志文件,其中包括有关事件调度程序的信息。
# mysqladmin -u root -p debug Enter password:
20. 如何查看 mysqladmin 选项和用法
要了解myslqadmin命令的更多选项和用法,请使用如下所示的 help 命令。它将显示可用选项的列表。
# mysqladmin --help
我们已尽力在本文中包含几乎所有的“ mysqladmin ”命令及其示例,如果仍然遗漏了任何内容,请通过评论告知我们,并且不要忘记与您的朋友分享。