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

文章目录

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

MySQL入门02:关于MySQL连接的ABC
【MySQL】如何使用Named Pipe协议(Windows)连接MySQL数据库
【MySQL】如何使用Shared-memory协议(Windows)连接MySQL数据库
【MySQL】如何使用Unix Sockets 协议连接MySQL数据库

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

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

连接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数据库的方法。

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

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

相关文章

基于Java+SpringBoot+Vue前后端分离工厂车间管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

基于Java+SpringBoot+Vue前后端分离纺织品企业财务管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

吴恩达 GPT Prompting 课程

Prompting Guidelines 目录 Guidelines for PromptingPrompting Principles Principle 1: Write clear and specific instructions1.1: Use delimiters to clearly indicate distinct parts of the input1.2: Ask for a structured output1.3: Ask the model to check whether …

前端学习记录~2023.8.10~JavaScript重难点实例精讲~第6章 Ajax

第 6 章 Ajax 前言6.1 Ajax的基本原理及执行过程6.1.1 XMLHttpRequest对象(1)XMLHttpRequest对象的函数(2)XMLHttpRequest对象的属性 6.1.2 XMLHttpRequest对象生命周期(1)创建XMLHttpRequest对象&#xff…

Linux进程替换和信号:探索进程管理的关键机制

Linux作为一种广泛应用的操作系统,进程管理是其核心功能之一。本文将深入探讨Linux中的进程替换和信号机制,这些机制在进程管理和通信中起着至关重要的作用。我们将了解进程替换的概念、原理和常见应用,以及信号的基本概念和使用方法&#xf…

【Python】【数据结构和算法】保留最后N个元素

使用deque,指定maxlen参数的值为N,例如: >>> from collections import deque >>> dq deque(maxlen3) >>> dq.append(1) >>> dq.append(2) >>> dq.append(3) >>> dq.append(4) >&…

CSS3渐变及2D转换

CSS3渐变及2D转换 持续更新哦… 1、css3渐变 概念: CSS3渐变(gradient)可以让你在两个或多个指定的颜色之间显示平 稳的过渡。以前,你必须使用图像来实现这些效果,现在通过使用 CSS3的渐变(gradients)即可实现。此外,渐变效果的元素在放大…

kubernetes--技术文档--可视化管理界面dashboard安装部署

阿丹: 使用官方提供的可视化界面来完成。 Kubernetes Dashboard是Kubernetes集群的Web UI,用户可以通过Dashboard进行管理集群内所有资源对象,例如查看资源对象的运行情况,部署新的资源对象,伸缩Deployment中的Pod数量…

Linux命令200例:telnet用于远程登录的网络协议(常用)

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…

java八股文面试[JVM]——垃圾回收器

jvm结构总结 常见的垃圾回收器有哪些? CMS(Concurrent Mark Sweep) 整堆收集器: G1 由于整个过程中耗时最长的并发标记和并发清除过程中,收集器线程都可以与用户线程一起工作,所以总体上来说,…

基于JSP+Servlet+Mysql员工信息管理系统

基于JSPServletMysql员工信息管理系统 一、系统介绍二、功能展示三.其他系统实现五.获取源码 一、系统介绍 项目类型:Java web项目 项目名称:基于JSPServlet的员工/客户/人员信息管理系统 项目架构:B/S架构 开发语言:Java语言…

● 84.柱状图中最大的矩形

84.柱状图中最大的矩形 class Solution { public:int largestRectangleArea(vector<int>& heights) {stack<int>st;heights.insert(heights.begin(),0);heights.push_back(0);st.push(0);int res0;for(int i1;i<heights.size();i){while(heights[i]<heig…

使用CSS的@media screen 规则为不同的屏幕尺寸设置不同的样式(响应式图片布局)

当你想要在不同的屏幕尺寸或设备上应用不同的CSS样式时&#xff0c;可以使用 media 规则&#xff0c;特别是 media screen 规则。这允许你根据不同的屏幕特性&#xff0c;如宽度、高度、方向等&#xff0c;为不同的屏幕尺寸设置不同的样式。 具体来说&#xff0c;media screen…

PHP基本语法解析与应用指南

PHP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛应用的开源脚本语言&#xff0c;特别适用于Web开发。本文将深入探讨PHP的基本语法&#xff0c;包括变量、数据类型、运算符、控制流等方面的内容。我们将详细介绍每个主题的基本概念、语法规则和常见应用&#xff…

Kotlin 丰富的函数特性

Kotlin 是一门基于 JVM 的现代编程语言&#xff0c;它提供了丰富的函数特性&#xff0c;使得编写简洁、灵活且可读性强的代码成为可能。以下是 Kotlin 函数的一些主要特性&#xff1a; 一、函数声明与调用 在 Kotlin 中&#xff0c;使用 fun 关键字来声明函数。函数声明的基本…

React绑定antd输入框,点击清空或者确定按钮实现清空输入框内容

其实实现原理和vue的双向绑定是一样的&#xff0c;就是监听输入框的onChange事件&#xff0c;绑定value值&#xff0c;当输入框内容发生变化后&#xff0c;就重新设置这个value值。 示例代码&#xff1a;我这里是统一在handleCancel这个函数里面处理清空逻辑了&#xff0c;你们…

【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库

Doris&#xff1a;基于 MPP 架构的高性能实时分析型数据库 1.Doris 介绍 Apache Doris 是一个基于 MPP&#xff08;Massively Parallel Processing&#xff0c;大规模并行处理&#xff09;架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff…

javaee spring配置文件bean标签详解

<bean id"drink_01" name"drink_02" scope"singleton"lazy-init"true"init-method"init" destroy-method"destroy"class"com.test.pojo.Drink" />scope属性 bean标签中添加scope属性,设置bean对…

Elasticsearch 入门安装

1.Elasticsearch 是什么 The Elastic Stack, 包括 Elasticsearch、 Kibana、 Beats 和 Logstash&#xff08;也称为 ELK Stack&#xff09;。能够安全可靠地获取任何来源、任何格式的数据&#xff0c;然后实时地对数据进行搜索、分析和可视化。 Elaticsearch&#xff0c;简称为…

[NLP]LLM--transformer模型的参数量

1. 前言 最近&#xff0c;OpenAI推出的ChatGPT展现出了卓越的性能&#xff0c;引发了大规模语言模型(Large Language Model, LLM)的研究热潮。大规模语言模型的“大”体现在两个方面&#xff1a;模型参数规模大&#xff0c;训练数据规模大。以GPT3为例&#xff0c;GPT3的参数量…