一、mysqladmin工具介绍
mysqladmin是用于执行管理操作的客户端。您可以使用它来检查服务器的配置和当前状态,创建和删除数据库等等。mysqladmin支持以下命令。某些命令在命令名称后带有一个参数。
- create db_name
创建一个名为的新数据库 db_name。 - debug
告诉服务器将调试信息写入错误日志。连接的用户必须具有 SUPER特权。此信息的格式和内容可能会更改。 - drop db_name
删除命名数据库db_name 及其所有表。 - extended-status
显示服务器状态变量及其值。 - flush-hosts
刷新主机缓存中的所有信息。 - flush-logs [log_type …]
刷新所有日志。
所述中mysqladmin冲洗日志命令允许给予任选的日志类型,指定哪个日志平齐。继flush-logs命令,你可以提供一个或多个以下的日志类型的空格分隔的列表:binary, engine,error, general,relay, slow。这些对应于可以为FLUSH LOGSSQL语句指定的日志类型。 - flush-privileges
重新加载授权表(与相同reload)。 - flush-status
清除状态变量。 - flush-tables
刷新所有表。 - flush-threads
刷新线程缓存。 - kill id,id,…
杀死服务器线程。如果给出了多个线程ID值,则列表中不得有空格。
要杀死属于其他用户的线程,连接的用户必须具有SUPER 特权。 - old-password new_password
就像password命令一样,但是使用旧的(4.1之前的)密码哈希格式存储密码。此命令已在MySQL 5.7.5中删除。 - password new_password
设置新密码。这会将密码更改new_password为与mysqladmin一起用于连接服务器的帐户的密码 。因此,下次使用同一帐户调用 mysqladmin(或任何其他客户端程序)时,必须指定新密码。 - ping
检查服务器是否可用。如果服务器正在运行,则mysqladmin的返回状态为0,否则为1。即使出现诸如之类的错误,该值也为0 Access denied,因为这意味着服务器正在运行,但拒绝了连接,这与服务器未运行不同。 - processlist
显示活动服务器线程的列表。这就像该SHOW PROCESSLIST语句的输出。如果–verbose给出了 选项,则输出类似于的输出 SHOW FULL PROCESSLIST。 - reload
重新加载授权表。 - refresh
刷新所有表,然后关闭并打开日志文件。 - shutdown
停止服务器。 - start-slave
在副本服务器上开始复制。 - status
显示简短的服务器状态消息。 - stop-slave
在副本服务器上停止复制。 - variables
显示服务器系统变量及其值。 - version
显示来自服务器的版本信息。
二、使用示例
1、查看数据库状态
[root@test2 ~]# mysqladmin status -uroot -p
Enter password:
Uptime: 21129 Threads: 2 Questions: 9213 Slow queries: 0 Opens: 1145 Flush tables: 1 Open tables: 733 Queries per second avg: 0.436
2、修改账户密码
修改指定账户密码
[root@test2 ~]# mysqladmin -uroot -p password ‘Test!123’
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
3、关闭数据库
[root@test2 ~]# mysqladmin shutdown -uroot -p
Enter password:
[root@test2 ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Tue 2021-02-09 16:40:49 CST; 7s ago
Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 108163 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 108078 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 108166 (code=exited, status=0/SUCCESS)
Feb 09 10:33:29 test2 systemd[1]: Starting MySQL Server…
Feb 09 10:33:35 test2 systemd[1]: Started MySQL Server.
4、查看活跃线程
[root@test2 ~]# mysqladmin processlist -uroot -p
Enter password:
±—±-----±----------±—±--------±-----±---------±-----------------+
| Id | User | Host | db | Command | Time | State | Info |
±—±-----±----------±—±--------±-----±---------±-----------------+
| 3 | root | localhost | | Query | 0 | starting | show processlist |
±—±-----±----------±—±--------±-----±---------±-----------------+
5、创建数据库
[root@test2 ~]# mysqladmin create test4 -uroot -p
Enter password:
[root@test2 ~]# mysql -uroot -p -e “show databases;”
Enter password:
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test1 |
| test2 |
| test3 |
| test4 |
±-------------------+
6、删除数据库
[root@test2 ~]# mysqladmin drop test4 -uroot -p
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 ‘test4’ database [y/N] y
Database “test4” dropped
7、刷新授权表
[root@test2 ~]# mysqladmin reload -uroot -p
Enter password:
8、查询mysql服务器版本
[root@test1 ~]# mysqladmin version -uroot -p -h 192.168.0.125
Enter password:
mysqladmin Ver 8.42 Distrib 5.7.26, for Linux on x86_64
Copyright © 2000, 2019, 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.7.26
Protocol version 10
Connection 192.168.0.125 via TCP/IP
TCP port 3306
Uptime: 8 min 5 sec
Threads: 2 Questions: 21 Slow queries: 0 Opens: 127 Flush tables: 1 Open tables: 120 Queries per second avg: 0.043
9、检查远端mysql服务器是否运行
[root@test1 ~]# mysqladmin ping -uroot -p -h 192.168.0.125
Enter password:
mysqld is alive
三、使用语法及参数说明
1、语法样式
用法:mysqladmin [OPTIONS] command command…
2、参数说明
选项名称 | 参数说明 | 备注 | 已弃用 |
–bind-address | 使用指定的网络接口连接到MySQL Server | ||
–compress | 压缩客户端和服务器之间发送的所有信息 | ||
–connect-timeout | 连接超时之前的秒数 | ||
–count | 要重复执行命令的迭代次数 | ||
–debug | 编写调试日志 | ||
–debug-check | 程序退出时打印调试信息 | ||
–debug-info | 程序退出时打印调试信息,内存和CPU统计信息 | ||
–default-auth | 身份验证插件使用 | ||
–default-character-set | 指定默认字符集 | ||
–defaults-extra-file | 除常规选项文件外,还读取命名的选项文件 | ||
–defaults-file | 只读命名的选项文件 | ||
–defaults-group-suffix | 选项组后缀值 | ||
–enable-cleartext-plugin | 启用明文身份验证插件 | ||
–force | 即使发生SQL错误,也要继续 | ||
–get-server-public-key | 从服务器请求RSA公钥 | 5.7.23 | |
–help | 显示帮助信息并退出 | ||
–host | MySQL服务器所在的主机 | ||
–login-path | 从.mylogin.cnf中读取登录路径选项 | ||
–no-beep | 发生错误时请勿发出哔声 | ||
–no-defaults | 不读取选项文件 | ||
–password | 连接服务器时使用的密码 | ||
–pipe | 使用命名管道连接到服务器(仅Windows) | ||
–plugin-dir | 安装插件的目录 | ||
–port | 用于连接的TCP / IP端口号 | ||
–print-defaults | 打印默认选项 | ||
–protocol | 使用的传输协议 | ||
–relative | 与–sleep选项一起使用时,显示当前值与先前值之间的差异 | ||
–secure-auth | 不要以旧(4.1之前)格式向服务器发送密码 | 是 | |
–server-public-key-path | 包含RSA公钥的文件的路径名 | 5.7.23 | |
–shared-memory-base-name | 共享内存连接的共享内存名称(仅Windows) | ||
–show-warnings | 语句执行后显示警告 | ||
–shutdown-timeout | 等待服务器关闭的最大秒数 | ||
–silent | 静音模式 | ||
–sleep | 重复执行命令,在这之间延迟几秒钟 | ||
–socket | Unix套接字文件或Windows命名管道使用 | ||
–ssl | 启用连接加密 | ||
–ssl-ca | 包含受信任的SSL证书颁发机构列表的文件 | ||
–ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 | ||
–ssl-cert | 包含X.509证书的文件 | ||
–ssl-cipher | 连接加密的允许密码 | ||
–ssl-crl | 包含证书吊销列表的文件 | ||
–ssl-crlpath | 包含证书吊销列表文件的目录 | ||
–ssl-key | 包含X.509密钥的文件 | ||
–ssl-mode | 与服务器连接的所需安全状态 | 5.7.11 | |
–ssl-verify-server-cert | 根据服务器证书的通用名身份验证主机名 | ||
–tls-version | 允许的TLS协议进行加密连接 | 5.7.10 | |
–user | 连接服务器时使用的MySQL用户名 | ||
–verbose | 详细模式 | ||
–version | 显示版本信息并退出 | ||
–vertical | 垂直打印查询输出行(每列值一行) | ||
–wait | 如果无法建立连接,请等待重试而不是中止 |