mysqladmin——MySQL Server管理程序(一)

mysqladmin 是一个命令行工具,用于执行简单的 MySQL 服务器管理任务,如检查服务器的状态、创建和删除数据库、重载权限等。

调用mysqladmin如下:

mysqladmin [options] command [command-arg] [command [command-arg]] ...

mysqladmin支持以下命令。有些命令在命令名后面带有一个参数。

create db_name

这个命令用于在 MySQL 服务器上创建一个新的数据库。您需要替换 db_name 为您想要创建的数据库的名称。例如,要创建一个名为 my_new_db 的数据库,您可以使用以下命令:

mysqladmin -u username -p create my_new_db

debug

在 MySQL 8.0.20 之前,debug 命令告诉服务器将调试信息写入错误日志。从 MySQL 8.0.20 开始,debug 命令已被移除,因为 MySQL 提供了更精细的控制来设置服务器的日志记录选项。

drop db_name

这个命令用于删除名为 db_name 的数据库以及其中的所有表。使用此命令时请小心,因为它会永久删除数据库及其内容。例如:

mysqladmin -u username -p drop db_name

extended-status

这个命令用于显示 MySQL 服务器的扩展状态变量及其值。这些变量提供了关于服务器内部状态的详细信息,如连接数、查询缓存使用情况等。例如:

mysqladmin -u username -p extended-status

flush-hosts

这个命令用于清空 MySQL 服务器的主机缓存。主机缓存用于存储客户端主机名的解析结果,以提高性能。在某些情况下,如果主机名解析发生变化或您怀疑主机缓存中存在错误条目,您可能需要清空它。使用 flush-hosts 命令可以清除所有主机缓存条目。例如:

mysqladmin -u username -p flush-hosts

flush-logs [log_type ...]

这个命令用于刷新(关闭并重新打开)MySQL服务器的日志文件。通过指定日志类型(如 binaryengineerrorgeneralrelayslow),可以仅刷新特定类型的日志。不指定任何类型将刷新所有日志。

当与特定的日志类型一起使用时,它只会关闭并重新打开指定的日志文件。

其用法如下:

mysqladmin -u [username] -p flush-logs [log_type ...]

其中 [username] 是你的 MySQL 用户名,-p 会提示你输入密码。[log_type ...] 是一个可选参数,可以是一个或多个日志类型,用空格分隔。

flush-privileges

这个命令用于重新加载授权表(权限表),这与 reload 命令相同。当你修改了 mysql.usermysql.dbmysql.host 等权限表后,需要执行此命令来使更改生效。

执行这个语句后,MySQL 会重新读取权限表,并应用新的权限设置。这意味着所有后续的客户端连接都将受到新权限设置的影响。但是,对于已经建立的连接,它们的权限在连接期间是固定的,不会受到 FLUSH PRIVILEGES; 的影响。要让已经建立的连接也使用新的权限设置,你需要关闭并重新建立这些连接。

flush-status

这个命令用于清除状态变量。状态变量是MySQL服务器运行时的各种计数器,例如连接数、查询数等。

flush-tables

这个命令用于关闭所有打开的表,并重新打开它们。这可以释放表锁,并关闭任何打开的表文件句柄。在某些情况下,这可以加速后续对表的访问。

flush-threads

这个命令用于清空线程缓存。线程缓存用于存储不再使用的线程,以便将来可以重用它们,而不是每次都创建新的线程。如果服务器创建了太多的线程,可能会耗尽资源。通过清空线程缓存,可以释放这些资源。

kill id,id,...

这个命令用于终止MySQL服务器上的线程。你可以指定一个或多个线程ID,用逗号分隔。要终止其他用户的线程,连接的用户必须具有 CONNECTION_ADMIN 权限(或已弃用的 SUPER 权限)。

password new_password

这个命令用于设置新密码。它将更改与 mysqladmin 用于连接到服务器的帐户关联的密码。因此,下次你使用相同的帐户调用 mysqladmin(或任何其他客户端程序)时,你必须指定新密码。但是,使用 mysqladmin 设置密码应该被认为是不安全的。在某些系统上,你的密码可能会对其他用户可见,因为系统状态程序(如 ps)可能会显示命令行。虽然MySQL客户端通常会在初始化过程中用零覆盖命令行密码参数,但在这之前仍有一个短暂的可见时间。此外,在某些系统上,这种覆盖策略是无效的,密码仍然对 ps 可见。

当 new_password 的值包含空格或对你的命令解释器来说具有特殊意义的字符时,你需要将它用引号括起来。在 Windows 上,确保使用双引号而不是单引号;单引号不会被从密码中移除,而是被解释为密码的一部分。

以下是一个例子,说明如何在 Windows 的命令提示符(CMD)或 PowerShell 中安全地设置包含空格或特殊字符的密码:

mysqladmin password "my new password"

当使用 mysqladmin 命令来更改密码时,如果紧跟在 password 命令之后省略了新密码,mysqladmin 会提示你输入新密码的值。这样做可以避免在命令行中直接指定密码,从而增加了安全性。

但是,确实需要注意以下几点:

  • 省略密码值的时机:只有在 password 是 mysqladmin 命令行上的最后一个命令时,才可以省略密码值。否则,下一个参数将被解释为密码。

  • --skip-grant-tables 选项:如果 MySQL 服务器是使用 --skip-grant-tables 选项启动的,那么 mysqladmin 的 password 命令将不会应用密码更改。即使你在同一条命令行上先使用了 flush-privileges 来重新启用授权表,这也不会起作用,因为 flush 操作是在连接之后发生的。

  • 分开执行命令:如果你需要在一个使用 --skip-grant-tables 选项启动的服务器上更改密码,你可以首先使用 mysqladmin flush-privileges 命令来重新启用授权表,然后在一个单独的命令中使用 mysqladmin password 并输入新密码。

  • 安全性:直接在命令行中输入密码(即使是隐藏的)也可能存在安全风险。在生产环境中,最好使用配置文件、环境变量或安全的密码管理工具来管理密码。

  • 版本兼容性:不同的 MySQL 版本可能会有细微的差别,因此最好查阅你正在使用的 MySQL 版本的官方文档以获取最准确的信息。

  • 备份:在更改密码之前,确保你有适当的备份,以防万一出现问题。

ping

这个命令用于检查 MySQL 服务器是否正在运行并且可以从客户端连接。如果服务器正在运行并且可以通过指定的连接参数(如主机、端口、用户名和密码)进行连接,那么 mysqladmin 将返回状态码 0。如果服务器无法连接(例如,因为它没有运行),则返回状态码 1。

重要的是要注意,即使由于权限问题(如“Access denied”)导致连接被拒绝,这个命令也可能返回状态码 0。这是因为这意味着服务器正在运行,但拒绝了连接尝试,这与服务器没有运行的情况是不同的。

检查服务器是否运行的使用示例如下:

mysqladmin -h your_host -u your_username -p ping

(提示输入密码后,如果服务器运行,则不输出任何内容并返回状态码 0;如果服务器未运行,则显示错误消息并返回状态码 1。)

processlist

这个 命令用于显示 MySQL 服务器上的活动线程列表。这与在 MySQL 客户端中执行 SHOW PROCESSLIST; SQL 命令的效果类似。这个列表会显示当前正在服务器上执行的查询、线程 ID、用户、主机等信息。

如果你在使用 mysqladmin 时加上 --verbose 或 -v 选项(即 mysqladmin -v processlist),那么输出的信息将类似于在 MySQL 客户端中执行 SHOW FULL PROCESSLIST; 的结果。FULL PROCESSLIST 会显示更多的信息,例如查询的完整文本(如果可用)。

显示活动线程列表的示例如下:

mysqladmin -h your_host -u your_username -p processlis

显示详细的活动线程列表的示例如下:

mysqladmin -h your_host -u your_username -p -v processlist

(提示输入密码后,将显示更详细的活动线程列表。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sdlan如何智能组网?

【天联】组网是一款异地组网内网穿透产品,由北京金万维科技有限公司自主研发,旨在解决不同地区电脑与电脑、设备与设备、电脑与设备之间的信息远程通信问题。【天联】的操作简单、跨平台应用、无网络要求以及独创的安全加速方案等特点,使得它…

什么是局域网IP?

局域网IP(Local Area Network IP)指的是在局域网内使用的IP地址。局域网是指在某个地理区域内,由一组相互连接的计算机组成的小型网络,常见于家庭、学校、办公室等场所。局域网IP可以用来实现内网穿透,即在复杂的网络环…

【性能优化】表分区实践最佳案例

背景 随着数字化建设的持续深入,企业的业务规模迎来了高速发展,其数据规模也呈现爆炸式增长,如果继续使用传统解决方案,将所有数据存储在一个表中,对数据的查询和维护效率将是一个巨大的挑战,在这个背景下…

MySQL数据备份操作步骤

常见的数据备份命令 备份命令备份速度恢复速度介绍功能适用场景lvm2快照快快一般、支持几乎热备、速度快一般中小型数据量的备份cp快快物理备份、灵活性低很弱少量数据备份xtrabackup较快较快实现innodb热备、对存储引擎有要求强大较大规模的备份mysqldump慢慢逻辑备份、适用所…

【React】AntD组件---极客园--01.项目前置准备

项目搭建 基于CRA创建项目 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start调整项目目录结构 -src-apis 项目接口函数-assets 项目资源文件&…

制作WIFI二维码,实现一键扫描连接WIFI

在现代社会,Wi-Fi已成为我们日常生活中不可或缺的一部分。无论是在家庭、办公室还是公共场所,我们都希望能够快速方便地连接到Wi-Fi网络。下面小编就来和大家分享通过制作WIFI二维码,来实现一键扫描就可以连接WIFI的方法。连接WIFI不用在告诉…

课时162:脚本发布_大型脚本_锁文件

2.2.4 锁文件 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 需求:同一时间段内,只允许有一个用户来执行这个脚本如果脚本执行的时候,有人在执行,那么输出报错:脚本…

CSS中几种常用的清除浮动的方法

在CSS中,浮动元素(使用float属性的元素)会脱离正常的文档流,这有时会导致父元素无法正确包裹其浮动子元素,从而产生布局问题。为了解决这个问题,我们需要清除浮动。以下是几种常用的清除浮动的方法&#xf…

vue3特性-Teleport源码

文章目录 前言源码分析1. Teleport 组件定义2. process 方法3. 挂载逻辑4. 更新逻辑5. 移除和移动逻辑 总结参考资料 前言 Teleport 是 Vue 3 的一个内置组件,它允许你将组件的内容渲染到 DOM 树的其他位置,而不是其父组件的 DOM 层次结构中。下面是对 …

STL中的迭代器是如何工作的

STL(Standard Template Library)中的迭代器是C标准模板库中的一个核心概念,它提供了一种访问容器(如vector、list、map、set等)中元素的统一接口,使得我们可以不暴露容器的内部实现细节就能访问容器内的元素…

【课程表算法题--拓扑排序】

课程表1 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]。给定课程总量以及它们的先…

【仿真建模-anylogic】INetwork相关接口说明

Author:赵志乾 Date:2024-06-22 Declaration:All Right Reserved!!! 1. 类图 2. 说明 INetwork为辊道网络、路线网路的顶层接口,其组成元素有节点和路径两种,对应的接口为INode、IP…

vue:vue2与vue3如何全局注册公共组件(包括涉及到的相关方法函数的讲解)

目录 第一章 vue2全局注册公共组件 1.1 方法一:逐个注册 1.2 方法二:批量注册 1.2.1 require.context()方法解释 第二章 vue3全局注册公共组件 1.1 方法一:逐个注册 1.2 方法二:批量注册 第一章 vue2全局注册公共组件 Vue…

[C++][数据结构][跳表]详细讲解

目录 0.什么是跳表?1.SkipList的优化思路2.SkipList的效率如何保证?3.SkipList实现4.SkipList VS 平衡搜索树 && Hash 0.什么是跳表? SkipList本质上也是一种查找结构,用于解决算法中的查找问题,跟平衡搜索树…

Linux测试服务器端口是否打开

前言 服务器端口在计算机网络通信中扮演着至关重要的角色,其作用可以归纳如下: 区分不同的应用程序或服务: 服务器端口用于标识和定位不同应用程序或服务在服务器上的通信入口。 通过不同的端口号,服务器可以同时运行多个应用程…

73. UE5 RPG 优化投射物以及敌人生成

解决发射物会与地面产生交互的问题 之前一直遇到发射物的体积过大会在发射时,和地面产生交互,我们可以调整小一些,然后为了防止它和自身产生交互事件。我们可以实现它在生成后,不会触发相关事件,而是在一定时间后。 对…

【STM32--Cortex-M3】

STM32-Cortex-M3 ■ Cortex-M3 处理器内核到基于Cortex-M3的MCU■ ARM的各种架构版本■ 指令集■ Cortex-M3简介■ Cortex-M3寄存器组■ Cortex-M3■ Cortex-M3■ Cortex-M3 ■ Cortex-M3 处理器内核到基于Cortex-M3的MCU Cortex-M3处理器内核是单片机的中央处理单元&#xff…

WordPress简单好看的线报主题模板源码

安装说明 到WordPress管理后台中的「外观」-「主题」中点击「添加」,选择baolog的主题包进行上传安装并启用即可。 提示:为了防止主题不兼容,请在安装主题前进行数据备份,防止数据字段重复覆盖等情况发生。 源码截图 源码下载 …

python实训day1

1、 dd2 dict(id101, name小明, age23, score[90, 67, 98]) print(dd2) print() print(dd2.id ->, dd2.get(id)) # 101 print(dd2.age ->, dd2.get(age)) # 23 print() """字典数据由三部分组成:1、键集2、值集;3、元素集&…

三种方式实现人车流统计(yolov5+opencv+deepsort+bytetrack+iou)

一、运行环境 1、项目运行环境如下 2、CPU配置 3、GPU配置 如果没有GPU yolov5目标检测时间会比较久 二、编程语言与使用库版本 项目编程语言使用c++,使用的第三方库,onnxruntime-linux-x64-1.12.1,opencv-4.6.0 opencv 官方地址Releases - OpenCV opencv github地址ht…