MySQL运维实战(3.1) MySQL官方客户端使用介绍

news2024/9/21 2:36:13

作者:俊达

引言

MySQL是MySQL安装包默认的客户端,该客户端程序通常位于二进制安装包的bin目录中,或者通过rpm安装包安装mysql-community-client,是数据库管理系统的重要组成部分。MySQL客户端不仅仅是一个简单的软件工具,更是连接用户与数据库之间的桥梁,对于有效地使用MySQL数据库的功能和特性至关重要。熟练掌握MySQL客户端的使用方法对于数据库管理和数据操作具有重要意义,在接下来的内容中,我们将介绍MySQL官方客户端的使用方法。
在这里插入图片描述

1 使用mysql程序

linux终端下,输入mysql命令登陆数据库。如果提示mysql不存在,要看mysql程序是否在命令行的搜索路径。

[root@box3 ~]# mysql
-bash: mysql: No such file or directory

### 测试环境中,mysql位于/usr/local/mysql, 设置PATH
[root@box3 ~]# cat ~/.bash_profile
...
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
export PATH

[root@box1 ~]# mysql --version
mysql  Ver 14.14 Distrib 5.7.32, for Linux (x86_64) using  EditLine wrapper

2 mysql主要命令行参数说明

命令行参数说明
–help查看帮助信息。mysql --help
–version查看客户端版本
-p, --password用户密码,小写的p
-P, --port服务端口,大写的P
-u, --user用户名
-h, --host服务地址
-S, --socketsocket文件。和-S和 -h -P只能使用其中一种方式登陆。
-v, --verbose输出更多提示信息,使用-vvv 输出更多信息。在批量执行脚本时,我们可能会需要增加输出信息,便于查看脚本执行过程中的信息。
-s, --silent安静模式,输出更少的提示信息
-B, --batch批模式,输出更少提示信息。会影响wait_timeout参数。
-e执行sql语句。mysql -e ‘select now()’
-A, --no-auto-rehash登陆时不读取mysql数据字典。在数据库中表多的时候,使用-A选项能提高连接的速度。
–tee将命令和结果输出到文件
–no-defaults不从默认的配置文件中读取选项
–defaults-file从指定的配置文件中读取选项
–ssl-modessl连接模式
required: 启用ssl
verify_ca:验证服务端证书
verify_identity:验证服务端身份
disabled:不启用ssl
–ssl-cassl CA证书。服务端和客户端使用同一个ca证书
–ssl-cert客户端ssl证书
–ssl-key客户端ssl私钥

3 关于mysql客户端空闲超时

mysql服务端会终止空闲时间超过一定时长的会话,有2个参数会影响超时时间。空闲时间是指客户端没有发送请求到服务端的连续时间。

  • interactive-timeout

交互模式下的连接空闲超时时间。使用mysql client连接是,超时时间会设置为interactive-timeout指定的值。

  • wait-timeout

非交互模式下的连接空闲超时时间。如果登陆时设置了交互模式,wait-timeout会设置为interactive-timeout指定的值
测试
1、先分别设置interactive-timeout和wait-timeout参数

mysql> set global wait_timeout=8000;
Query OK, 0 rows affected (0.00 sec)

mysql> set global interactive_timeout=1000;
Query OK, 0 rows affected (0.00 sec)

2、在交互式客户端查看超时时间。wait_timeout被设置为interactive_timout的值。

[root@box3 ~]#  mysql -udemo -h172.16.20.51 -pdemo -s -t
mysql> show variables where variable_name in ('wait_timeout', 'interactive_timeout');
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 1000  |
| wait_timeout        | 1000  |
+---------------------+-------+

3、使用非交互式客户端连接,查看超时时间。使用客户端参数-B指定当前会话为非交互式会话。

[root@box3 ~]#  mysql -udemo -h172.16.20.51 -pdemo -s -t -B
show variables where variable_name in ('wait_timeout', 'interactive_timeout');
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 1000  |
| wait_timeout        | 8000  |

wait_timeout的值还是8000。
4、每个会话可以设置各自的超时时间

mysql> show variables where variable_name in ('wait_timeout', 'interactive_timeout');
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 1000  |
| wait_timeout        | 1000  |
+---------------------+-------+
mysql> set session wait_timeout=256;
mysql> show variables where variable_name in ('wait_timeout', 'interactive_timeout');
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 1000  |
| wait_timeout        | 256   |
+---------------------+-------+

5、使用各种语言的api连接到mysql,需要连接后执行命令查看会话的空闲超时时间。

4 关于mysql client的参数文件

在linux环境下,使用mysql client会从默认的配置文件中读取相关参数。使用strace可以看到mysql会访问这些文件: /etc/my.cnf, /etc/mysql/my.cnf, /usr/etc/my.cnf, /root/.my.cnf

[root@box1 ~]# strace mysql  2>&1 | grep my.cnf
stat("/etc/my.cnf", {st_mode=S_IFREG|0644, st_size=1029, ...}) = 0
open("/etc/my.cnf", O_RDONLY)           = 3
stat("/etc/mysql/my.cnf", 0x7ffc29961a00) = -1 ENOENT (没有那个文件或目录)
stat("/usr/etc/my.cnf", 0x7ffc29961a00) = -1 ENOENT (没有那个文件或目录)
stat("/root/.my.cnf", 0x7ffc29961a00)   = -1 ENOENT (没有那个文件或目录)

测试在/root/.my.cnf中配置相关连接参数,mysql client程序会自动从文件中读取相关选项。使用–no-defaults参数避免从默认参数文件中读取命令行选项。

[root@box1 ~]# cat /root/.my.cnf
[mysql]
user=demo
password=demo

[root@box1 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
...
mysql> show grants;
+-------------------------------------------+
| Grants for demo@%                         |
+-------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'demo'@'%' |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> ^DBye

[root@box1 ~]# mysql --no-defaults
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

5 mysql client程序使用场景

批量执行保存在文件中的SQL

(1)以列的方式展现查询数据

sql语句以\G结尾,将行格式的数据转换成按列显示。

mysql> select user, host from mysql.user limit 1;
+-------+------+
| user  | host |
+-------+------+
| auser | %    |
+-------+------+
1 row in set (0.01 sec)

mysql> select user, host from mysql.user limit 1\G
*************************** 1. row ***************************
user: auser
host: %
1 row in set (0.00 sec)

(2)使用show warnings查看warning信息

有时候执行SQL会有warnings,执行show warnings命令可以查看具体的信息

mysql> set sql_mode='';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show warnings\G
*************************** 1. row ***************************
  Level: Warning
   Code: 3090
Message: Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release.
1 row in set (0.00 sec)

(3)使用pager过滤查询的数据

mysql客户端中可以使用pager过滤数据。类似于通过管道将sql的输出发送给pager指定的命令进行处理。

mysql> pager more
PAGER set to 'more'

mysql> select * from mysql.user\G
*************************** 1. row ***************************
                  Host: localhost
                  User: root
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
20 rows in set (0.00 sec)

mysql> pager
Default pager wasnt set, using stdout.

mysql> pager grep "inserts/s"
PAGER set to 'grep "inserts/s"'
mysql> show engine innodb status\G
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
1 row in set (0.00 sec)

mysql> pager
Default pager wasnt set, using stdout.

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

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

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

相关文章

【数据库原理】(15)数据关系模式与规范

在数据库系统设计中,数据模式的设计是至关重要的。这涉及到如何将现实世界的复杂结构和关系有效地转化为适宜的数据模式。关系模式,得益于其坚实的数学理论基础,不仅能以二维表的形式清晰地表达实体,还能描述实体之间的相互关系&a…

使用STM32和MPU6050实现基于手势的室内导航系统

基于STM32和MPU6050的基于手势的室内导航系统是一个创新而具有挑战性的项目。在本文中,我们将介绍如何利用STM32微控制器和MPU6050传感器实现基于手势的室内导航系统,并提供相应的代码示例。 1. 系统概述 基于手势的室内导航系统旨在通过手势识别的方式…

使用Adobe Acrobat Pro DC给pdf文件填加水印

前言 GPT4的官方售价是每月20美元,很多人并不是天天用GPT,只是偶尔用一下。 如果调用官方的GPT4接口,就可以按使用量付费,用多少付多少,而且没有3个小时内只能提问50条的使用限制。 但是对很多人来说调用接口是比较麻烦…

自动驾驶轨迹预测

目录 神经网络轨迹预测综述: 比较新的轨迹预测网络 Uber:LaneRCNN[5] Google:VectorNet[6] Huawei:HOME[7] Waymo:TNT[8] Aptive:Covernet[9] NEC:R2P2[10] 商汤:TPNet[11]…

小H靶场笔记:DC-6

DC-6 January 6, 2024 12:06 PM Tags: nmap提权,WordPress Owner:只惠摸鱼 信息收集 apr-scan和nmap探测主机后,发现靶机ip:192.168.199.136,端口22和80开放 扫描端口服务、版本、操作系统、默认脚本扫描 扫描开…

Dora-rs 机器人框架学习教程(3)——利用yolo实现目标检测

文章目录 1 安装pytroch环境1.1 nvidia驱动1.2 安装cuda1.3 在conda中安装pytorch GPU版本1.4 检验pytroch是否安装正确 2 编写程序代码2.1 object_detection.py文件内容如下:2.2 dataflow.yml 文件内容如下: 3 运行参考资料 目标:在dora框架…

Hyperledger Fabric Docker 方式多机部署生产网络

规划网络拓扑 3 个 orderer 节点;组织 org1 , org1 下有两个 peer 节点, peer0 和 peer1; 组织 org2 , org2 下有两个 peer 节点, peer0 和 peer1; 因为我只有 3 台虚拟机资源所以没法实现完全的多机部署,资源使用规划如下&#…

各种锁的概述

乐观锁与悲观锁 悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改,所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。 悲观锁的实现往往依靠数据库提供的锁机制&#xff0…

react antd 计算公式 (+-*/)运算,回显

计算器的源码计算器触发事件源码 import { DictValueEnumObj } from /components/DictTag; import { getDeptTree, getFormulaListAll, getListAll } from /services/Energy/Metering;import { getListAllInfo, getDepartmentName } from /services/Energy/Calculation; import…

带前后端H5即时通讯聊天系统源码

带有前后端的H5即时通讯聊天系统源码。该源码是一个开源的即时通信demo,需要前后端配合使用。它的主要目的是为了促进学习和交流,并为大家提供开发即时通讯功能的思路。尽管该源码提供了许多功能,但仍需要进行自行开发。该项目最初的开发初衷…

CVE-2023-36025 Windows SmartScreen 安全功能绕过漏洞

CVE-2023-36025是微软于11月补丁日发布的安全更新中修复Windows SmartScreen安全功能绕过漏洞。攻击者可以通过诱导用户单击特制的URL来利用该漏洞,对目标系统进行攻击。成功利用该漏洞的攻击者能够绕过Windows Defender SmartScreen检查及其相关提示。该漏洞的攻击…

伦敦银1盎司等于多少克?

1盎司的伦敦银大概等于31克,用于衡量伦敦银重量的“盎司”,是国际贵金属市场上专用的计量单位,它的全称是金衡盎司,英文的名字是troy ounce,它与西方日常用于计算重量的单位常衡盎司也不一样,一金衡盎司约等…

[论文阅读]4DRadarSLAM: A 4D Imaging Radar SLAM System for Large-scale Environments

目录 1.摘要和引言: 2. 系统框架: 2.1 前端: 2.2 回环检测: 2.3 后端: 3.实验和分析: 4.结论 1.摘要和引言: 这篇论文介绍了一种名为“4DRadarSLAM”的新型4D成像雷达SLAM系统&#xff0…

【ChatGPT+】创新与教育的交汇点:中国训练工程师的崛起

人工智能总价值超15.7万亿美元 根据国际数据公司(IDC)的预测,到2030年,全球人工智能市场总价值将超过15.7万亿美元,这表明人工智能技术将在未来几十年内得到广泛应用并取得长足发展。 人工智能的快速发展将对各个领域…

JAVA基础语句1

目录 前言 一.JAVA特性 简单 面向对象 分布式 多线程 二.关键字 三.对象和类 对象 类 构造方法 创建对象 访问实例变量和方法 源文件声明规则 Java 包 import 语句 总结 前言 这里参考了:Java 教程 | 菜鸟教程 (runoob.com) 第一个必须是: hello world&a…

2024腾讯云免费服务器申请入口,限制及申请攻略亲测!

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM,轻量配置可选2核2G3M、2核8G7M和4核8G12M,CVM云服务器可选2核2G3M和2核4G3M配置,腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

idea修改pom.xml没有重新导入maven的按钮

问题描述: IDEA修改pom.xml配置以后,不会展示 Load Maven Changes弹窗。 解决方法: 方式一、pom.xml右键,Maven--Run Maven--Reimport。但我感觉这个太麻烦了。 方式2、选择Building Tool Settings,点击Auto-Reload …

指针传参误区

C语言中指针作为形参传递时,func(*a, *b) 这种形式的话,是无法通过简单的 ab来修改的,在函数体内a的地址确实被修改成b的地址了,但是当函数执行结束时,a的地址会重新回到原本的地址里面&#xf…

目标检测-One Stage-CenterNet

文章目录 前言一、CenterNet的网络结构和流程二、CenterNet的创新点总结 前言 前文提到的YOLOv3、YOLOv4、YOLOv5都是基于Anchor的算法(anchor-based),这类算法有如下缺点: 产生大量的预测框,计算量大正负样本不平衡…