如何查看MySQL会话连接方式?

这篇具有很好参考价值的文章主要介绍了如何查看MySQL会话连接方式?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL总共支持四种连接方式访问数据库,如下表格所示,其中Linux平台环境下,主要有两种连接方式,一种是TCP/IP连接方式,另外一种是socket方式。Name pipe和Share memory是Windows平台下独有的连接方式。

如何查看MySQL会话连接方式?

那么,MySQL数据库中,我们能否查看会话具体使用的连接方式呢(例如,使用TCP/IP连接方式)?如果有的话,总共有哪一些方法呢? 下面简单总结一下。

方法1:status命令查看

如下所示,socket方式连接数据库的话,会有UNIX socket这样的信息(红色部分信息)

mysql> status;
--------------
mysql  Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          9
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.33 MySQL Community Server - GPL
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /tmp/mysql.sock
Binary data as:         Hexadecimal
Uptime:                 4 hours 8 min 7 sec

Threads: 3  Questions: 45  Slow queries: 9  Opens: 153  Flush tables3  Open tables72  Queries per second avg0.003
--------------

mysql> 

如下所示,TCP/IP方式连接数据库的话,会有xxx.xxx.xxx.xxx via TCP/IP以及TCP port这样的信息(红色部分的信息)

mysql> status
--------------
mysql  Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          10
Current database:
Current user:           test@10.160.2.55
SSL:                    Cipher in use is TLS_AES_256_GCM_SHA384
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.33 MySQL Community Server - GPL
Protocol version:       10
Connection:             10.160.2.53 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
TCP port:               3306
Binary data as:         Hexadecimal
Uptime:                 4 hours 8 min 47 sec

Threads: 3  Questions: 48  Slow queries: 9  Opens: 153  Flush tables3  Open tables72  Queries per second avg0.003
--------------

mysql> 

但是status命令有一个很大的弊端,只能查看当前会话的连接方式,不能查看其它会话的连接信息,而我们一般主要是查看其它会话的连接方式。所以,这个命令非常有局限性。

方法2:通过通用查询日志(general log)查看

如下所示,你在通用查询日志(general log)中,你可以看到会话的连接的方式(红色部分信息),但是一般情况下,MySQL数据库并不会开启通用查询日志,所以对于这种 方法,我们仅需知道有这么一种方法,但是其实很少使用,就像你知道走路能走到北京去一样,你根本不可能选择这种方法。

2023-11-09T16:16:13.614201+08:00 11 Query show variables like '%general_log%'
2023-11-09T16:16:26.614163+08:00 11 Query select user,host from mysql.user
2023-11-09T16:18:21.214091+08:00 11 Query show variables like '%port%'
2023-11-09T16:18:42.378325+08:00 12 Connect test@10.160.3.104 on using SSL/TLS
2023-11-09T16:18:42.378492+08:00 12 Connect Access denied for user 'test'@'10.160.3.119' (using password: YES)
2023-11-09T16:18:47.802135+08:00 13 Connect test@10.160.3.104 on using SSL/TLS
2023-11-09T16:18:47.802659+08:00 13 Query select @@version_comment limit 1
2023-11-09T16:18:57.006583+08:00 11 Quit
2023-11-09T16:19:28.448989+08:00 14 Connect root@localhost on using Socket
2023-11-09T16:19:28.449468+08:00 14 Query select @@version_comment limit 1
2023-11-09T16:19:30.701042+08:00 14 Quit

方法3:MySQL的Enterprise Audit log查看

这种方法仅仅适用于MySQL企业版,MySQL社区版无法使用这种方法,所以也有一定的局限性。如下所示:

<AUDIT_RECORD>
  <TIMESTAMP>2023-11-09T10:28:58 UTC</TIMESTAMP>
  <RECORD_ID>16_2023-11-09T10:28:00</RECORD_ID>
  <NAME>Connect</NAME>
  <CONNECTION_ID>8</CONNECTION_ID>
  <STATUS>0</STATUS>
  <STATUS_CODE>0</STATUS_CODE>
  <USER>root</USER>
  <OS_LOGIN/>
  <HOST>localhost</HOST>
  <IP/>
  <COMMAND_CLASS>connect</COMMAND_CLASS>
  <CONNECTION_TYPE>Shared Memory</CONNECTION_TYPE>
  <PRIV_USER>root</PRIV_USER>
  <PROXY_USER/>
  <DB/>
</AUDIT_RECORD>

方法4:通过performance_schema.threads查看

performance_schema.threads中有个字段connection_type,它记录了会话的连接方式,所以,我们可以通过这个表查看会话的连接方式。而且这种方法最方便,实用。

CONNECTION_TYPE的取值如下:

    The protocol used to establish the connection, or NULL for background threads. Permitted values are:
    
      TCP/IP (TCP/IP connection established without encryption), 
      SSL/TLS (TCP/IP connection established with encryption), 
      Socket (Unix socket file connection), 
      Named Pipe (Windows named pipe connection), 
      Shared Memory (Windows shared memory connection).

查看所有非后台线程的连接方式:

select processlist_id
     , processlist_user
     , processlist_host
     , thread_id
     , connection_type 
from performance_schema.threads
where processlist_user is not null
order by thread_id;

--查看某个会话的连接方式:文章来源地址https://www.toymoban.com/news/detail-746036.html

select processlist_id
     , processlist_user
     , processlist_host
     , thread_id
     , connection_type 
from performance_schema.threads
where processlist_user is not null
  and processlist_id=xxx  --xxx用具体会话ID替换
order by thread_id;

到了这里,关于如何查看MySQL会话连接方式?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据系列之MySQL】(七):MySQL查看版本号的三种方式

    第一种方式就是通过命令行,输入指令: 方式二和方式一是同样的道理,只不过可以将命令进行简写: 第三种方式是通过登录MySQL的服务端,通过指令:

    2024年04月15日
    浏览(16)
  • 查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

    文章目录 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 2.查看SSL配置 二、查看证书是否存在 查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在 在Linux终端中,可以通过以下命令登录MySQL服务器: mysql -u username -p 其中,username为MySQL服务器的用户名。执行该

    2024年02月15日
    浏览(16)
  • Linux如何查看网络连接状态

    在Linux中,可以使用多个命令来查看网络连接状态,以下是其中几个常用的命令: 1. netstat命令:可以显示系统的网络连接、路由表和网络接口信息。可以使用以下命令来查看所有的网络连接信息:  该命令可以显示所有的网络连接信息,包括TCP和UDP连接。 2. ss命令:该命令可

    2024年02月11日
    浏览(20)
  • 【MySQL】连接 MySQL使用二进制方式连接和脚本连接,修改密码,增加新用户,显示命令

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 格式:mysql -h 主机地址 -u 用户名 -p 用户密码 连接到本机上的MYSQL。 首先在打开 DOS 窗口,然后进入目录 mysql

    2024年02月12日
    浏览(11)
  • 如何查看自己电脑上是否成功安装了Mysql,以及如何查看mysql的安装目录

    1、打开cmd,输入命令:net start mysql查看服务是否启动,若显示已启动则表示安装成功 2、窗口+R,输入services.msc,在弹出的服务窗口中我们可以发现MySQL正在运行中,表示已经安装成功。 双击MySQL,在弹出的界面中可以查看到mysql对应的安装目录

    2024年03月25日
    浏览(31)
  • MySQL数据库的多种连接方式

    在Mysql安装完成后,Mysql命令行会自动配置在计算机上,在菜单中找到MySql 8.0 Command Line Client,输入密码即可进入。(密码在安装过程中设定的) ​ ​ 1.、直接去到MySQL的bin目录里在目录框里输入cmd ​ 注意: -u后面为用户名,-p为密码 ​ 1、Navicat Premium 的使用 “Navicat”是一套

    2024年01月16日
    浏览(18)
  • 如何使用CMD查询电脑连接的无线网络密码或如何查看电脑连接的无线网络密码

    第一步,打开电脑的运行端程序 ,使用Windows键+R键,打开运行,如下图; 在输入框中,输入 CMD ,点击 确定 按钮,进入 CMD 界面,如下图; 输入如下命令 ,如下图展示; 查看已保存的 无线网络 列表名称,如下; 查看某一个无线网络的密码,输入以下命令(其中206是你要查

    2024年02月12日
    浏览(17)
  • MySQL实践——如何查看MySQL性能

    可以使用两种机制来管理和监控MySQL服务器的运行情况。使用服务器变量来控制其运行情况,并使用服务器状态变量读取其运行情况配置和关于功能和性能的统计信息。 服务器中有很多配置变量。有些变量只能在启动时设置(被称为启动选项,这些也可以在选项文件中设置)。

    2024年02月13日
    浏览(16)
  • 【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】

    图形 连接方式 说明 SQL 内连接 共有部分 SELECT select_list FROM TableA A INNER JOIN TableB B ON A.Key = B.Key; 左连接 A表独有+共有部分 SELECT select_list FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key; 右连接 B表独有+共有部分 SELECT select_list FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key; A的独有 SELECT select_l

    2024年02月04日
    浏览(14)
  • 如何使用IDEA查看jar包,jar包的正确打开方式

    原理就用 IDEA 是把 jar 包添加为 Libraries ,然后展开后即可查看。 因为是编译后的 class 文件,所以注释是没有的。 还有一种方法是把 jar 包的扩展名改为 rar ,然后用压缩工具打开可以查看里面的 class 文件。 正确打开方式如下: 喜欢的点个赞❤吧!

    2024年02月13日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包