文章目录

  • 一、介绍
  • 二、语法格式
  • 三、命令参数
  • (一)参数默认值
  • (二)默认参数
  • 四、支持的管理命令
  • 五、参考示例
  • (一)每隔两秒查看一次服务器的状态,总共重复 5 次
  • (二)修改 root 密码
  • (三)查看数据库服务器所有进行的进程
  • (四)查看数据库服务器的状态
  • (五)查看服务器扩展状态
  • (六)清空日志
  • (七)每秒查看一次执行的SQL语句
  • (八)使用安全模式关闭数据库服务器
  • (九)打印出可用变量
  • (十)检查数据库服务是否可用
  • (十一)查询服务器的版本
  • (十二)创建数据库
  • (十三)重新加载权限信息
  • (十四)刷新所有表缓存,并关闭和打开 log
  • (十五)删除数据库 test


一、介绍

mysqladmin 命令是 MySQL 服务器管理任务的客户端工具,它可以检查 MySQL 服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。

二、语法格式

mysqladmin [参数] [管理命令]

三、命令参数

选项

说明

-h , --host

MySQL服务器主机名 或 ip 地址

-u , --user

连接 MySQL 服务器的用户名

-p , --password

连接 MySQL 服务器的密码

-? , --help

显示帮助信息

-c , --count number

number 是自动运行次数,设置自动运行次数,必须和 -i 一起使用

-i , --sleep number

间隔多长时间重复执行

-P , --port

指定数据库端口,优先顺序,my.cnf,$mysql_tcp_port,/etc/services,内置默认值(3306)

-s , --silent

无法连接到服务器时自动退出

-v, --verbose

写更多的信息

-V, --version

显示版本

–bind-address

绑定的IP

–debug-check

当程序退出时打印一些调试信息

–debug-info

当程序退出时打印调试信息和内存和CPU使用统计信息

-f, --force

不要求确认删除数据库;使用多个命令,即使发生错误也继续。

-C, --compress

在服务器/客户端协议中使用压缩

–character-sets-dir

字符集的文件目录

–default-character-set

设置默认字符集

-b, --no-beep

关闭错误提示音

–protocol

用于连接的协议(TCP、套接字、管道、内存)

-r, --relative

与-i一起使用时,显示当前值和以前值之间的差异。当前仅适用于扩展状态

–secure-auth

如果客户端使用旧的(4.1.1之前的)协议,则拒绝连接到服务器

-S, --socket

指定用于连接的套接字文件

–ssl-mode

指定 SSL 连接模式

–ssl-ca

PEM格式的CA文件

–ssl-capath

CA目录

–ssl-cert

PEM格式的X509证书

–ssl-cipher

要使用的SSL密码

–ssl-key

PEM格式的X509密钥

–ssl-crl

证书吊销列表

–ssl-crlpath

证书吊销列表路径

–tls-version

要使用的TLS版本,允许值为:tlsv1、tlsv1.1

-u, --user

登录用户(如果不是当前用户)

-v, --verbose

写更多信息

-V, --version

输出版本信息并退出

-E, --vertical

垂直打印输出

-w, --wait

如果连接断开,等待并重试

–connect-timeout

连接超时之前等待的秒数

–shutdown-timeout

等待服务器关机的最大秒数

–plugin-dir=name

客户端插件目录

–default-auth=name

要使用的默认身份验证客户端插件

–enable-cleartext-plugin

启用/禁用明文身份验证插件

–show-warnings

执行完显示警告

(一)参数默认值

参数名

默认值

bind-address

(No default value)

count

0

force

FALSE

compress

FALSE

character-sets-dir

(No default value)

default-character-set

auto

host

(No default value)

no-beep

FALSE

port

3306

relative

FALSE

secure-auth

TRUE

socket

/data/3306/mysql.sock

sleep

0

ssl

TRUE

ssl-verify-server-cert

FALSE

ssl-ca

(No default value)

ssl-capath

(No default value)

ssl-cert

(No default value)

ssl-cipher

(No default value)

ssl-key

(No default value)

ssl-crl

(No default value)

ssl-crlpath

(No default value)

tls-version

(No default value)

user

(No default value)

verbose

FALSE

vertical

FALSE

connect-timeout

43200

shutdown-timeout

3600

plugin-dir

(No default value)

default-auth

(No default value)

enable-cleartext-plugin

FALSE

show-warnings

FALSE

(二)默认参数

按顺序从以下文件中:

/etc/my.cnf 
/etc/mysql/my.cnf/ 
/data/3306/my.cnf 
~/.my.cnf

读取以下参数的值:

--print-defaults                     # 打印程序参数列表并退出.
--no-defaults                        # 不要从任何选项文件读取默认选项,登录文件除外
--defaults-file=#                    # 仅从给定文件中读取默认选项
--defaults-extra-file=#              # 读取全局文件后读取此文件
--defaults-group-suffix=#            # 同时读取带有concat(group,suffix)的组            
--login-path=#                       # 从登录文件读取此路径

四、支持的管理命令

create databasename:创建一个新数据库
drop databasename:删除一个数据库及其所有表
extended-status:给出服务器的一个扩展状态消息,从服务器发出扩展状态消息
flush-hosts:清空所有缓存的主机
flush-logs:清空所有日志
flush-tables:清空所有表
flush-privileges:再次装载授权表(同reload)
flush-status:清除状态变量
flush-threads:清空线程缓存
flush-privileges:重新加载授权表,刷新权限(与reload加载相同)
kill id,id,...:杀死mysql线程
password [new-password]:修改用户密码
ping:检查mysqld是否活着
processlist:显示服务器中活跃线程列表
reload:重新加载授权表
refresh:清空所有表并关闭和打开日志文件
shutdown:关掉服务器
status:给出服务器的简短状态消息,从服务器发出简短的状态消息
variables:打印出可用变量
version:得到服务器的版本信息
debug:指示服务器将调试信息写入日志
start-slave:启动主从复制
stop-slave:暂停主从复制

五、参考示例

(一)每隔两秒查看一次服务器的状态,总共重复 5 次

mysqladmin -uroot -p -i 2 -c 5 status # 相当于 show status
mysqladmin -uroot -pdadong123 -i 1 status # 每隔一秒查看一次状态

(二)修改 root 密码

语法格式:

mysqladmin -u用户名 -p旧密码 password 新密码

给 root 加个密码 111111:

mysqladmin -uroot -p password '111111'

将 root 的密码改为 dadong:

mysqladmin -uroot -pdadong123 password 'dadong'

(三)查看数据库服务器所有进行的进程

获得当前数据库的连接线程信息:

[root@htlwk0001host ~]# mysqladmin -uroot -p processlist # 查看执行的SQL语句信息
[root@htlwk0001host ~]# mysqladmin -uroot -p -i 1 processlist # 每秒刷新一次

(四)查看数据库服务器的状态

mysqladmin -uroot -pdadong123 status

(五)查看服务器扩展状态

mysqladmin -uroot -pdadong123 extended-status # 等同show global status

(六)清空日志

mysqladmin -uroot -pdadong123 flush-logs

(七)每秒查看一次执行的SQL语句

mysqladmin -uroot -pdadong123 processlist -i 1

(八)使用安全模式关闭数据库服务器

mysqladmin -uroot -pdadong shutdown

(九)打印出可用变量

mysqladmin -uroot -pdadong variables # 相当于show variables

(十)检查数据库服务是否可用

[root@htlwk0001host ~]# mysqladmin -uroot -p ping
Enter password: 
mysqld is alive

(十一)查询服务器的版本

[root@htlwk0001host ~]# mysqladmin -uroot -p version
Enter password: 
mysqladmin  Ver 8.42 Distrib 5.7.31, for Linux on x86_64
Copyright (c) 2000, 2020, 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.31
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			1 hour 52 min 59 sec

Threads: 21  Questions: 784  Slow queries: 0  Opens: 105  Flush tables: 1  Open tables: 98  Queries per second avg: 0.115

(十二)创建数据库

[root@DB02 ~]# mysqladmin -uroot -pdadong123 create lili
Warning: Using a password on the command line interface can be insecure.

(十三)重新加载权限信息

mysqladmin -uroot -p reload

(十四)刷新所有表缓存,并关闭和打开 log

mysqladmin -uroot -p refresh

(十五)删除数据库 test

mysqladmin -uroot -p drop test