MySQL 連接指定端口后,為什么實際仍是 3306?

文章目錄

  • MySQL 連接指定端口后,為什么實際仍是 3306?
  • 問題現象復現
  • 原因分析
    • 沒有指定 -h,默認走的是本地 Unix Socket
    • 多實例環境中未顯式指定目標地址
  • 正確的連接方法
    • 方法一:添加 -h 127.0.0.1
    • 方法二:添加 --protocol=TCP
  • 驗證是否連接成功
  • 附加說明
  • 總結
    • ? 建議


MySQL 連接指定端口后,為什么實際仍是 3306?

在日常運維或開發過程中,有時我們在使用 mysql 命令行工具連接 MySQL 實例時,可能會遇到一個令人疑惑的問題:

mysql -u root -p -P 3307

本以為連接的是監聽在 3307 端口的 MySQL 實例,但登錄進去后執行:

SELECT @@hostname, @@port;

卻發現:

+----------------+--------+
| @@hostname     | @@port |
+----------------+--------+
| your-hostname  | 3306   |
+----------------+--------+

也就是說,實際連接的是 3306 端口,而不是我們指定的 3307。這是為什么?本文將為你詳細解答。


問題現象復現

命令:

mysql -u root -p -P 3307

登錄成功后執行:

SELECT @@port;

輸出結果卻是:

3306

這說明當前連接的 MySQL 實例監聽端口為 3306,而不是我們指定的 3307。


原因分析

沒有指定 -h,默認走的是本地 Unix Socket

MySQL 客戶端有兩種連接方式:

  • Unix Socket(本地文件方式),路徑一般是 /tmp/mysql.sock
  • TCP/IP(網絡方式)

當你沒有指定 -h 參數時,例如:

mysql -u root -p -P 3307

MySQL 客戶端會默認使用 Unix Socket 方式連接本地 MySQL 實例,而不是 TCP 連接。

而本地默認的 Socket 通常連接的是 MySQL 默認端口 3306 的實例。這就解釋了為什么你看到的是 @@port = 3306

提示-P 端口號只在 TCP 連接中才會生效,Socket 連接時會被忽略。


多實例環境中未顯式指定目標地址

如果你在本機運行了多個 MySQL 實例(例如一個監聽 3306,另一個監聽 3307),但沒有明確指定連接主機地址,則默認連接的是 3306 監聽的實例。


正確的連接方法

為了確保連接到指定端口上的實例,你需要強制使用 TCP 連接方式。

方法一:添加 -h 127.0.0.1

mysql -u root -p -P 3307 -h 127.0.0.1

指定主機地址為 127.0.0.1,客戶端就會使用 TCP 協議連接指定端口。

方法二:添加 --protocol=TCP

mysql -u root -p -P 3307 --protocol=TCP

這個參數顯式告訴 MySQL 客戶端使用 TCP 協議,而不是默認的 Socket。


驗證是否連接成功

進入 MySQL 后執行以下命令驗證:

SELECT @@hostname, @@port, @@socket;

如果你看到的是:

+-------------+--------+----------------------+
| @@hostname  | @@port | @@socket             |
+-------------+--------+----------------------+
| localhost   | 3307   | NULL                 |
+-------------+--------+----------------------+

說明你成功通過 TCP 連接到了監聽 3307 的實例。


附加說明

如果你使用 socket 配置了多個實例,可能存在多個 socket 文件,如:

# /etc/my.cnf
[mysqld]
port=3306
socket=/var/lib/mysql/mysql.sock[mysqld_multi]
[mysqld1]
port=3306
socket=/var/lib/mysql/mysql.sock[mysqld2]
port=3307
socket=/var/lib/mysql3307/mysql.sock

此時命令行客戶端也可以用 --socket 顯式連接對應實例:

mysql -u root -p --socket=/var/lib/mysql3307/mysql.sock

總結

問題原因解決方法
未指定 -h,默認走本地 Socket,連接到了 3306 實例使用 -h 127.0.0.1--protocol=TCP 強制使用 TCP 連接
本機有多個 MySQL 實例,未顯式指定主機或 socket 文件使用 --socket=路徑 或 TCP 方式連接指定端口

? 建議

以后如果你需要連接指定端口的 MySQL 實例,務必顯式指定 -h 參數或使用 --protocol=TCP,否則 -P 參數可能不會生效


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86653.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86653.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86653.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Android當用戶兩次打斷息屏操作后,屏幕將會在10分鐘內無法熄滅并持續點亮(關閉Android13新增的dim功能)】

UndimDetectorWakeLock持鎖導致屏幕不滅問題處理SOP 問題描述 在Android T版本中,系統新增了SCREEN_BRIGHT_WAKE_LOCK(UndimDetectorWakeLock)機制。當設備處于低亮度(dim)狀態時,用戶兩次打斷屏幕熄滅操…

Tailwind CSS自定義用法

文章目錄 前言? 一、集成 Tailwind CSS 到 React 項目1. 安裝依賴2. 配置 tailwind.config.js3. 創建全局樣式文件(如 src/index.css)tailwind base;tailwind components;tailwind utilities; 4. 在 main.tsx 或 main.jsx 中引入樣式 ? 二、自定義樣式…

linux面試常考

常用指令 常見題

Spring Boot 2.2.6調用DeepSeek API并通過SSE將流式響應推送給前端的完整實現

1. 添加依賴 (pom.xml) <dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SSE 支持 --><depe…

LM1117-ADJ 簡單介紹

LM1117-ADJ是一款可調輸出電壓的低壓差線性穩壓器&#xff08;LDO&#xff09;&#xff0c;具有以下關鍵特性和應用要點&#xff1a; 核心特性 可調輸出電壓 通過外部分壓電阻&#xff08;R1和R2&#xff09;調節輸出電壓&#xff0c;范圍為1.25V至13.8V。輸出電壓公式&#…

知名流體控制解決方案供應商“永盛科技”與商派ShopeX達成B2B商城項目合作

2025年6月&#xff0c;全球知名的工業流體控制解決方案服務商——永盛科技&#xff08;股票&#xff1a;874497&#xff09;&#xff0c;與商派ShopeX正式達成B2B商城項目合作。 此次合作將共同推動永盛科技B2B業務的數字化變革&#xff0c;提高B2B業務運營效率&#xff0c;同…

jvm簡單八股

1、jvm中內存分為那幾個區域&#xff0c;1.7和1.8 jvm 中主要有 程序計數器、虛擬機棧、本地方法棧、堆、方法區、直接內存。 線程私有的有&#xff1a;程序計數器、虛擬機棧、本地方法棧 線程共有的有&#xff1a;堆、方法區、直接內存 堆空間又可以分為&#xff1a;新時代、…

contOS7安裝docker命令及yum源更換為國內源

docker介紹 Docker是一個開源的容器化平臺,通過將應用程序及其依賴打包成輕量級、可移植的容器,確保開發、測試和部署環境的一致性。Docker的核心概念包括容器、鏡像、Dockerfile和鏡像倉庫。容器是輕量級的虛擬化技術,共享宿主機內核但保持獨立運行環境,啟動快且資源占用少…

SpringBoot集成Redis-6.x版本流程

SpringBoot集成Redis是我們常見的功能&#xff0c;今天我們分享一下&#xff1a; 前言&#xff1a; 1、pom包引用 <!-- Redis Starter (默認使用 Lettuce) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo…

zookeeper Curator(3):Watch事件監聽

文章目錄 Curator API 常用操作 Watch事件監聽NodeCachePathChildrenCacheTreeCache 本章代碼已分享至Gitee: https://gitee.com/lengcz/curator01 Curator API 常用操作 Watch事件監聽 zookeeper 允許用戶在指定節點上注冊一些Watcher &#xff0c;并且在一些特定事件觸發的時…

多模態融合相機L3CAM

多模態融合相機L3CAM L3CAM是Beamagine公司推出的多模態傳感器融合技術&#xff0c;結合了激光雷達&#xff08;LiDAR&#xff09;和可見光攝像頭&#xff0c;旨在為自動駕駛、工業機器人和其他需要精確環境感知的應用場景提供高效、安全的解決方案。 L3CAM技術參數 L3CAM結合…

結構化思維

前言 洞悉分析方法論 系統解決管理問題 1 構建問題分析框架 1.1 摘要 &#xff08;1&#xff09;何謂問題分析和解決&#xff1f; &#xff08;2&#xff09;問題分析和解決的基本原則 1.2 什么是問題分析與決策&#xff1f; 1.3 問題解決者需要具備的四種能力 &#xf…

什么是數字簽名(ECDSA)?

數字簽名是區塊鏈、數字身份認證和安全通信的核心技術之一&#xff0c;ECDSA&#xff08;橢圓曲線數字簽名算法&#xff09;是目前最常見、最主流的數字簽名算法之一&#xff0c;尤其在區塊鏈系統&#xff08;如比特幣、以太坊、EOS&#xff09;中廣泛應用。 一、什么是數字簽名…

深入剖析AI大模型:Dify的介紹

今天介紹的內容&#xff0c;跟大模型開發還是息息相關的。俗話說&#xff1a;有人的地方就是江湖&#xff01;對于我們技術其實也一樣&#xff0c;一個新技術的出現&#xff0c;自然會衍生出相應的生態圈。今天的文字只是介紹&#xff0c;以后會有專門的實操篇&#xff0c;主要…

Open VSX Registry關鍵漏洞使攻擊者可完全控制Visual Studio Code擴展市場

網絡安全研究人員近日披露了 Open VSX Registry&#xff08;"open-vsx[.]org"&#xff09;中存在的一個關鍵漏洞。若被成功利用&#xff0c;攻擊者可能完全控制整個 Visual Studio Code 擴展市場&#xff0c;造成嚴重的供應鏈風險。 漏洞詳情與潛在影響 Koi Securi…

Python從入門到高手9.1節-Python中的字典類型

目錄 9.1.1 理解字典類型 9.1.2 字典的類型名 9.1.3 字典的定義 9.1.4 字典的主要性質 9.1.5 好好學習&#xff0c;天天向上 9.1.1 理解字典類型 在日常生活中&#xff0c;我們常常會接觸到“字典”這種數據類型&#xff0c;例如一本書籍的目錄結構&#xff0c;在目錄結構…

封禁UDP端口提高防御能力分析

封禁不必要的 UDP 端口 確實可以在一定程度上提高系統的防御力&#xff0c;但這并不是一個絕對的“好”或“壞”的問題&#xff0c;需要根據具體情況來判斷。以下是詳細分析&#xff1a; ? 封禁 UDP 端口能提高防御力的原因 (優點) 減少攻擊面&#xff1a; 服務暴露&#xff…

阿里云-arms監控

監控java應用 若是容器集群環境&#xff0c;則選擇容器服務環境 手動安裝方式&#xff0c;是手動把 agent的jar包放到 ecs服務器&#xff0c;然后運行個人的spring boot服務時&#xff0c;加上一些參數&#xff0c;將agent也啟動運行 手動集成-添加agent 監控的是ecs中的java應…

c語言 char *str = ““ 和 char *str = NULL 以及 char str[] = {} 區別

目錄 前言char *str "" 和 char *str NULL 區別char *str NULL 和 char str[] {} 區別char *str "" 和 char str[] {} 區別char *str "" 和 const char *str "" 區別 前言 C語言指針的使用非常常見且易出錯&#xff0c;這里對…

小程序入門: tab bar 實現多頁面快速切換效果

在小程序開發中&#xff0c;tab bar 是實現多頁面快速切換的關鍵組件&#xff0c;能極大提升用戶體驗。上一篇我們完成了基礎配置&#xff0c;今天深入探索&#xff0c;打造更豐富實用的 tab bar 效果。 實現目標 這次要在小程序底部創建包含 “首頁”“消息”“聯系我們” 三…