MySQL客户端工具mysqladmin常用参数和命令总结

1.1 mysqladmin工具如何安装

当你安装好了MySQL软件包(MySQL Community Server)后,就会包含mysqladmin这个客户端工具,你可以理解成是MySQL数据库自带的(非自带的不一定说就是第三方的)。我们也是可以只安装mysqladmin这个客户端工具,具体的方法可以通过以点我进行查看

1.2 mysqladmin工具有何作用

mysqladmin是非交互连接到MySQL实例后执行自身所提供的命令(注意:不是SQL语句)去获取MySQL的配置、当前状态等,也可以创建和删除数据库、修改用户密码等。以下是关于mysqladmin非交互工连接的说明。

mysqladmin -uroot -p -S /data/mysql/3306/run/mysql.sock ping  
  # 交互式下提示你你输入用户密码,然后非交互式成功连接MySQL后执行ping命令;
 
mysqladmin -uroot -p -S /data/mysql/3306/run/mysql.sock        
  # 你可能想到的是我连接到mysql实例后,再手动输入ping,是不行的哈
  # 一是mysqladmin不能交互式的连接到mysql实例,二是ping在mysql中无法执行(不信你用mysql命令连接后执行一下试试)

另外还要考虑到你所连接的用户有没有相关的权限去执行命令。

1.3 mysqladmin工具语法说明

mysqladmin [OPTIONS] command command.

1.4 mysqladmin读取文件获取连接信息

获取连接信息是是指连接MySQL实例时要用到的用户名、密码、端口、地址等,你至少要先非交互式连接成功后再执行其提供的命令吧。它会到哪去找,找到了会读取什么?找不到又怎样呢?

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
The following groups are read: mysqladmin client

找配置文件(my.cnf)的先后顺序依次为:/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 找到配置文件(my.cnf)后读取[mysqladmin]选项或者[client]选项下面的相关参数,到底是以[mysql]选项下面的相关参数为准还是以[client]选项下面的相关参数为准。这个就看:有没有同时存在。若同时存在,哪个在下面/后面就以谁的为准。

--no-defaults
    ###### 命令说明
    # 
	#  表示mysqladmin命令不会去找 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 这些文件
    #  你用了它,也不能再使用--defaults-file参数来另外指定一个文件读取其中[mysqladmin]或者[client]下的相关参数来获取连接信息。
    #
    ###### 该参数生产中可用不
    #
    # 这个参数可以用,防止一台服务器上安装了两套MySQL软件包(安装的方式又不一样)。你自己维护的数据库情况你应该要把控住。
   
   
--defaults-file=
    ###### 参数说明
    # 
    # 从一个文件中的[mysqladmin]选项或者[client]选项下面读取相关的参数来获取连接信息,最后非交互连接到MySQL服务端执行命令。
    # 就不会去找 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 这些文件了
    #
    ###### 该参数生产中要用不
    #
    # 我生产中不用这个参数,为啥,看后面的示例
    #
    ###### 示例1,从my.cnf中读取信息
    # 01:我想用root@localhost超级用户去登录MySQL服务端后执行ping命令,命令如下:
    #     mysqladmin --defaults-file=/data/mysql/3306/etc/my.cnf  ping
    # 02:我就得在my.cnf中(最好是尾部)配置如下信息(不用重启MySQL):
    #     [mysqladmin]   # 也可以写成client
    #     user=root
    #     password=chenliang
    #     socket=/data/mysql/3306/run/mysql.sock
    # 03:不建议这样做,记录了密码,不安全(做法就不对,不要说你有其它手段来防止)。
    # 
    ####### 示例2:不从my.cnf中读取信息
    # 01:我想用root@localhost超级用户去登录MySQL服务端后执行ping命令,命令如下:
    #     mysqladmin --defaults-file=/tmp/a  ping
    # 02:我就得在/tmp/a中配置如下信息:
    #     [client]       # 也可以写成mysqladmin
    #     user=root
    #     password=chenliang
    #     socket=/data/mysql/3306/run/mysql.sock
    # 03:不建议这样做,记录了密码,不安全(做法就不对,不要说你有其它手段来防止)。

1.5 mysqladmin工具常用参数

######## 获取 mysqladmin 命令的帮助和版本信息
--help
	# 等于--?参数,获取mysqladmin工具/命令的帮助,例如:mysql --help 或者 mysql -I

-V  
	# 等于--version参数,查看mysqladmin这个客户端工具的版本



######## 指定文件获取连接信息(用户名、密码、连接地址、端口)
--no-defaults
	# 不让mysqladmin命令去 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 这些文件
	# 中读取[mysqladmin]选项或者[client]选项下获取相关的连接信息。同时--defaults-file参数也无法用了。生产中可以用。

--defaults-file=
    # 指定mysql从某个文件的[mysqladmin]或者[client]选项获取连接信息(用户、密码、连接地址等),我生产中不用。
    # 具体看 1.4 章节



######## 连接mysqladmin实例的相关参数
-u
	# 等于--user= 参数,指定连接mysql的用户名。
	# 例如:mysqladmin -u root      ...................
	# 例如:mysqladmin --user=root  ...................

-p
	# 等于--password= 参数,指定连接mysql的用户的密码。
	# 例如:mysqladmin -uroot -pchenliang ...................
	# 例如:mysqladmin --user=root --password=chenliang ...................
	# 不建议在命令行暴露密码,当然linux下是可以解决这个问题的,这里不告诉你。指定了参数,没有指定密码,会出现交互式界面让你输入密码

-S
	# 等于--socket=,指定mysql实例的socket文件。该参数没有默认值(不指定的话,那么它会去找/tmp/mysql.sock)
	# 例如:mysqladmin -uroot -pchenliang                                            
	# <== 会找/tmp/mysql.sock,没有的话,我们可以做个软链接;
	# 例如:mysqladmin --user=root --password=chenliang -S /data/mysql/3306/run/mysql.sock 
	#  <== 人为指定了,若不存在,不会去找/tmp/mysql.sock
	
-h
	# 等于--host=参数,指定可以连接到mysql实例的IP地址或者主机名,该参数没有默认值;
	# 例如:mysqladmin -uchenliang -plili -h10.0.0.21 ......................
	# 例如:mysqladmin --user=chenliang --password=lili --host=10.0.0.21   ..........
	
-P
	# 等于--port=参数,指定MySQL实例的端口,该参数没有默认值;
	# 例如:mysqladmin -uroot -plili -h10.0.0.21 -P3306
	# 例如:mysqladmin --user=root --password=lili --host=10.0.0.21  --port=3306

1.6 mysqladmin工具常用命令

ping 
	# 检查相关的mysql实例是否存活。完整命令如下所示:
	# mysqladmin --no-defaults -uroot -pchenliang -S /data/mysql/3306/run/mysql.sock  ping 
	# 若存活,返回mysqld is alive字符串,linux下echo $?就是0
	# 若不存活,返回的信息中包含failed,linux下echo $?就是1
    # PS:至于用户:用户要存在,用户可以没有任何权限,就别说范围了;


version
	# 查看mysql实例的版本信息,同时还可看到mysql实例运行了多长时间
	# 例:mysqladmin --no-defaults -uroot -pchenliang -S /data/mysql/3306/run/mysql.sock version


create [databasename]
	# 在mysql实例中创建新的数据库,完整的命令如下所示:
	# mysqladmin --no-defaults -uroot -pchenliang -S /data/mysql/3306/run/mysql.sock  create chenliang
	# 无法指定数据库的字符集,这样就会继承mysql service端的字符集,即character_set_server参数指定的字符集
	# PS:关于用户:用户的权限要具备create,同时范围必须是 *.*


drop [databasename]
	# 在mysql实例中drop掉数据库,完整的命令如下所示:
	# mysqladmin --no-defaults -uroot -pchenliang -S /data/mysql/3306/run/mysql.sock -f drop chenliang
	# PS:生产中不能随便drop库哈
	# PS:关于用户:用户的权限要具备drop,同时范围必须是 *.*


flush-logs 
	# 刷新日志,连接的用户要有相应刷新log的权限
	# 例如:mysqladmin --no-defaults -uroot -pchenliang -S /data/mysql/3306/run/mysql.sock flush-logs


processlist
	# 显示服务器中活动线程的列表
	# 例如:mysqladmin --no-defaults -uroot -pchenliang -S /data/mysql/3306/run/mysql.sock processlist


password [new-password]
	# 为当前用户更改密码,前提是你得知道你当前用户的正确密码;
	# 例:当前mysql实例中 lili@172.16.1.% 用户,密码:lili123456 权限是对chenliang库下所有表有select、insert、update权限
	# 将lili@172.16.1.%用户的密码从lili123456修改成lili666666,如下所示
	# 例:mysqladmin --no-defaults -ulili -plili123456 -h172.16.1.21 -P3306 password lili666666


flush-privileges
	# 刷新权限,例如:mysqladmin --no-defaults -uroot -pchenliang -S /data/mysql/3306/run/mysql.sock flush-privileges


shutdown
	# 关闭 mysql 实例服务,我工作中会用它,完整的命令如下所示:
	# mysqladmin --no-defaults -ushut -pchenliang -S /data/mysql/3306/run/mysql.sock shutdown
	# PS:用户的权限要具备shutdown,同时范围必须是 *.*
	# PS:我生产中就是创建一个shut@localhost用户,然后给该用户只授权shutdown权限,范围是*.*
	#     具体的可以参考 https://chenliang.blog.csdn.net/article/details/104577640 博文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值