【MySQL】如何使用Unix Sockets 协议连接MySQL数据库

news/2025/5/24 13:48:33

文章目录

  • 【MySQL】如何使用Unix Sockets 协议连接MySQL数据库
    • 使用Unix Sockets 连接MySQL
      • 步骤1:确认MySQL服务器已启用Unix Sockets支持
      • 步骤2 :使用Unix Sockets连接MySQL服务器。
        • 例1:指定socket路径连接
        • 列2: 不指定socket路径 (Linux环境下,hostname为localhost时候,默认是socket连接)
        • 例3:指定TCP/IP 连接MySQL
    • 小结

【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
编辑|SQL和数据库技术(ID:SQLplusDB)

【MySQL】如何使用Unix Sockets 协议连接MySQL数据库

在MySQL中可以通过指定 --protocol参数,选择连接MySQL的协议。

连接协议(Connection Protocals):

--protocol={TCP|SOCKET|PIPE|MEMORY}TCP/IP  (ALL)  -Transmission Control Protocal/Internet Protocal-Connection:local & remote-Supports Clasic & X protocol
Socket  file (Unix including Linux/Mac) -Connection:local -Supports Clasic & X protocol
Named Pipe    (Win)  -Connection:local -Supports Clasic
Shared Memory (Win)  -Connection:local -Supports Clasic

参考:
https://dev.mysql.com/doc/refman/8.0/en/connection-options.html#option_general_protocol
>4.2.3 Command Options for Connecting to the Server

使用Unix Sockets 连接MySQL

使用Unix Sockets连接MySQL避免了网络通信的开销和潜在的安全风险,因此可以提高性能和安全性。
下面介绍如何使用Unix Sockets连接MySQL的步骤。

步骤1:确认MySQL服务器已启用Unix Sockets支持

可以通过检查MySQL配置文件中的socket选项来确认MySQL服务器已启用Unix Sockets支持。
默认情况下,socket选项设置为/var/run/mysqld/mysqld.sock。

例:

ubuntu@mysql-vm:~$ mysql -u root -p -h 127.0.0.1 -e "select @@socket"
Enter password:
+-----------------------------+
| @@socket                    |
+-----------------------------+
| /var/run/mysqld/mysqld.sock |
+-----------------------------+

或者

mysql> show variables like 'socket';
+---------------+-----------------------------+
| Variable_name | Value                       |
+---------------+-----------------------------+
| socket        | /var/run/mysqld/mysqld.sock |
+---------------+-----------------------------+
1 row in set (0.00 sec)mysql>

或者
查看MySQL配置文件的socket 设置。

sudo more /etc/mysql/mysql.conf.d/mysql.cnf
sudo more //etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]
#
# * Basic Settings
#
user            = mysql
# pid-file      = /var/run/mysqld/mysqld.pid
# socket        = /var/run/mysqld/mysqld.sock
# port          = 3306
# datadir       = /var/lib/mysql

步骤2 :使用Unix Sockets连接MySQL服务器。

大多数MySQL客户端都支持Unix Sockets,但是需要使用正确的选项来指定路径。
例如,使用mysql客户端时,可以使用–socket选项来指定Unix Sockets路径。

mysql --socket=/var/run/mysqld/mysqld.sock -u username -p

其中,–socket选项指定Unix Sockets路径,-u选项指定用户名,-p选项提示输入密码。

例1:指定socket路径连接

ubuntu@mysql-vm:/etc/mysql/mysql.conf.d$ mysql --socket=/var/run/mysqld/mysqld.sock -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 8.0.33-0ubuntu0.22.04.2 (Ubuntu)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> \s
--------------
mysql  Ver 8.0.33-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))Connection id:          24
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.33-0ubuntu0.22.04.2 (Ubuntu)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/run/mysqld/mysqld.sock
Binary data as:         Hexadecimal
Uptime:                 2 hours 13 min 49 secThreads: 2  Questions: 54  Slow queries: 0  Opens: 158  Flush tables: 3  Open tables: 77  Queries per second avg: 0.006
--------------mysql>

列2: 不指定socket路径 (Linux环境下,hostname为localhost时候,默认是socket连接)

在Linux环境下,hostname为localhost时候,默认是socket连接

ubuntu@mysql-vm:/etc/mysql/mysql.conf.d$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 25
Server version: 8.0.33-0ubuntu0.22.04.2 (Ubuntu)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> \s
--------------
mysql  Ver 8.0.33-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))Connection id:          25
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.33-0ubuntu0.22.04.2 (Ubuntu)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/run/mysqld/mysqld.sock
Binary data as:         Hexadecimal
Uptime:                 2 hours 16 min 42 secThreads: 2  Questions: 59  Slow queries: 0  Opens: 158  Flush tables: 3  Open tables: 77  Queries per second avg: 0.007
--------------mysql>

例3:指定TCP/IP 连接MySQL

ubuntu@mysql-vm:/etc/mysql/mysql.conf.d$ mysql -u root -p --protocol=TCP
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 8.0.33-0ubuntu0.22.04.2 (Ubuntu)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> \s
--------------
mysql  Ver 8.0.33-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))Connection id:          26
Current database:
Current user:           root@localhost
SSL:                    Cipher in use is TLS_AES_256_GCM_SHA384
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.33-0ubuntu0.22.04.2 (Ubuntu)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
TCP port:               3306
Binary data as:         Hexadecimal
Uptime:                 2 hours 17 min 45 secThreads: 2  Questions: 64  Slow queries: 0  Opens: 158  Flush tables: 3  Open tables: 77  Queries per second avg: 0.007
--------------mysql>

连接成功进入MySQL客户端提示符后,就可以使用标准的MySQL命令来执行查询和操作。

※注意:
使用Unix Sockets连接MySQL需要在同一台机器上运行MySQL服务器和客户端(Sockets仅支持本地连接)。
如果需要在不同的机器上连接MySQL服务器,则需要使用TCP/IP连接(TCP/IP支持本地或远程连接)。

小结

本文介绍了如何使用Unix Sockets连接MySQL数据库的方法。

文章来源:https://blog.csdn.net/lukeUnique/article/details/132376252
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-4953636.html

相关文章

TikTok或将于8月底关闭半闭环、速卖通或将推出“半托管”模式

《出海周报》是运营坛为外贸企业主和外贸人独家打造的重要资讯栏目,聚焦企业出海、海外市场动态、海外监管政策等方面,以简捷的方式,提升读者获取资讯的效率。 接下来运营坛为大家带来第15期出海周报,快来看看这周国内外市场发生了…

poi3.8-4.1.1版本差异

poi3.版本 poi4.版本 用途 Cell.CELL_TYPE_STRING CellType.STRING 判断单元格数据格式 HSSFCell.CELL_TYPE_NUMERIC CellType.NUMERIC 判断单元格数据格式 CellStyle.ALIGN_CENTER HorizontalAlignment.CENTER 单元格水平居中 CellStyle.VERTICAL_CENTER VerticalAlignmen…

vue浏览器插件安装-各种问题

方法1:vue.js devtolls插件下载 https://blog.csdn.net/qq_55640378/article/details/131553642 下载地址: Tags vuejs/devtools GitHub npm install 或是 cnpm install 遇到的报错 设置淘宝镜像源(推荐使用nrm,这一步是为…

【BST】701. 二叉搜索树中的插入操作

701. 二叉搜索树中的插入操作 解题思路 当前节点为null 直接返回创建的新节点当前节点值小于Val 遍历右子树进行寻找当前节点值大于val 遍历左子树继续寻找 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* Tree…

基于grpc从零开始搭建一个准生产分布式应用(4) - 05 - springGrpc框架

springGrpc框架是一个开源项目,大家可以在网上下载。本章开始详细说下相关的内容。这里不讲其集成等,只把重要内容描述下。 一、概念 Channel: Channel 是单个服务端的连接池。 目标服务器可能是多个 gRPC 服务。ManagedChannel: ManagedChannel 是 Cha…

苹果审核:传完包,邮箱收到 ITMS-90078: Missing Push Notification Entitlement

邮件原文: We identified one or more issues with a recent delivery for your app, "***" 1.0. Your delivery was successful, but you may wish to correct the following issues in your next delivery: ITMS-90078: Missing Push Notification En…

安卓手机跑 vins slam (1)

一直是手机拍照,用RealityCapture重建三维模型。因为他是靠特征点去把拍摄的多个图像进行对齐的。需要拍摄的足够多,且有特征才能对齐,要不然会生成多个组件,还得手动拼。 而且重建的三维模型有尺度问题,自动重建的模…

编辑距离与字符错误率CER

在语音识别场景中,字符错误率(Character Error Rate,CER)是衡量语音识别效果的一个重要指标。下文将介绍CER的原理,并且给出python实现的代码。 1 编辑距离 说到CER,不得不提的是编辑距离(Edi…

解决 Maven 创建 Spring Boot 项目时出现 “Cannot access alimaven“ 错误的方法

系列文章目录 文章目录 系列文章目录前言一、确认 Maven 配置二、创建 Spring Boot 项目三、修改项目的 Maven 配置四、清除 Maven 本地仓库五、重新构建项目总结前言 Maven 是 Java 项目的构建工具,而 Spring Boot 则是用于快速构建 Spring 应用程序的框架。但有时,在创建 …

贝叶斯推理问题、MCMC和变分推理

一、介绍 贝叶斯推理是统计学中的一个主要问题,在许多机器学习方法中也会遇到。例如,用于分类的高斯混合模型或用于主题建模的潜在狄利克雷分配都是在拟合数据时需要解决此类问题的图形模型。 同时,可以注意到,贝叶斯推理问题有时…