MySQL多实例的环境下,服务器端本地连接到指定实例的问题(sock方式连接)
涉及到sock连接的问题。
为了测试MySQL的某些个特性,在一个机器上安装了多个MySQL的实例,如下截图,有两个实例,一个端口是8000,一个端口是8001。
在使用mysql -uroot -p -P8001连接至端口号为8001的MySQL实例的时候,show variables like '%port%'却显示连接的是8000这个实例,莫名其妙?
笔者一开始也被这个问题吓了一跳,后面才弄清楚是TCP连接和sock连接的问题。

这涉及到一个sock连接的问题,本地(也就是服务器端)连接到MySQL实例的时候,
默认是使用的sock的方式连接的,当没有指定sock文件的情况下,而默认的sock文件是从/tmp/mysql.sock路径下找的。
也就是说,在服务器端连接MySQL实例的时候(未指定主机地址,这里是-h127.0.0.1),
1,默认是以sock的方式连接至MySQL实例的
2,在未指定主机地址的情况下,也即-h参数,是会忽略端口号的参数值,也即-P的值。
比如使用上述的mysql -uroot -p -P8001,的方式连接至数据库实例,默认是用sock的方式连接(没有指定sock参数 -S,默认/tmp/mysql.sock),且忽略端口号参数,也即-P8001
比如如下截图,-P指定了一个根本不存在的端口号,仍然正常地连接到了一个实例,具体是哪个实例,取决于默认/tmp/mysql.sock指向哪个实例(多实例的情况下)

sock的原理也不难理解:sock文件本身就是记录了一个MySQL实例的进程id,mysql命令在本地直接通过sock中的进程id连接至该实例,因为可以忽略端口号。
如何在服务器本地连接至具体的实例?
1,连接命名中明确指定sock文件的路径,无须指定端口号( mysql -uroot -p -S/***/mysql.sock),即便指定端口号,也会被忽略

2,指定端口号+主机地址(指定TCP)的方式连接:mysql -uroot -p -P*** -h127.0.0.1

记下来,一台机器上装了N多个实例,一不小心又掉坑里了……
在本地也即服务器端连接至MySQL实例的时候,未指定主机地址的情况下,默认是以sock的方式连接的,而未指定sock的时候,又是按照默认的路径找对应的sock文件
此时会忽略连接命令中的端口号参数,不注意的情况下可能会造成一些凌乱。
仅仅是从服务器端连接的时候会出现类似情况,如果是从客户端(非服务器端)连接的话,肯定会指定IP,一旦指定了IP,对应的端口号就生效了,因此客户端不会发生类似情况。
一直对某些默认的配置有所忌惮,实际上是掩盖了很多问题,弄不好就掉坑理了。
MySQL多实例的环境下,服务器端本地连接到指定实例的问题(sock方式连接)的更多相关文章
- Windows环境下,本地Oracle创建dblink连接远程mysql
前言 我的情况是,本地安装了oracle(安装完成后带有SQL Developer,不需要再安装instantclient),创建dblink去连接远程的mysql.有些朋友可能是 本地使用PL\SQ ...
- 《高可用MySQL》1 – Windows环境下压缩版MySQL安装
近日在读O’REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容.Master-Slave这东西吧,在许多公司都是标配,开发中基本天 ...
- [原]我在Windows环境下的首个Libevent测试实例
libevent对Windows环境也有很好的支持,不过初次学习和编译libevent简单实例,总是有一些陌生感的,只有成功编译并测试了一个实例,才会有恍然大悟的感觉.下面将要讲到的一个实例是我从网上 ...
- Mysql迁移工具在生产环境下的使用
在产品迭代开发发布过程中,由于业务需求的增加,数据库难免会有结构调整等操作. 在每个版本发布过程中怎么控制每个版本server端程序与数据库版本保持一致,以及数 据库升级.回滚等操作. 本博文宅鸟将向 ...
- MySQL分库分表环境下全局ID生成方案 转
在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作.在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象.但是当我们对数据库进行了分库 ...
- MySQL分库分表环境下全局ID生成方案
在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作.在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象.但是当我们对数据库进行了分库 ...
- 【转】MySQL分库分表环境下全局ID生成方案
转载一篇博客,里面有很多的知识和思想值得我们去思考. —————————————————————————————————————————————————————————————————————— 在大 ...
- MySQL - MySQL++在c++11环境下接口设计
安装官方提供的mysqlconnect后,可以使用mysql++库,在官方的C API上再次做一个c++面向对象封装. 这里mysql++的安装依赖于mysql-connector-c.安装参考:ht ...
- 在mysql 5.6的环境下修改生产环境的表结构(在线ddl) ----工具pt-osc
随着需求的变化越来越快,在线修改表结构变得越来越需要. 在mysql5.6以前,mysql的修改表结构操作会锁表,这样就会造成开发人员或者DBA修改表结构必须要等到凌晨流量谷值或者停服修改.这样必定会 ...
随机推荐
- 18.17 U-Boot+内核移植
18.17.1 移植U-Boot-2012.04.08 1.下载.建立source insight工程.编译.烧写.如果无运行分析原因. $ .tar.bz2 $ cd u-boot- $ make ...
- Windows 10的最新版1803版本ISO下载
Windows 10推出已经有几年时间了,笔者一直在用这个新版本.据说Windows 10以后只会推出新的更新,而不会有新的操作系统推出,所以Windows 10的更新就显得重要了.这次给大家推荐一个 ...
- MUI在项目中使用时遇到的问题的个人分享
picker 添加年插件问题总结 1. 取消按钮点击事件无法获取 可以获取到取消按钮标签和确定按钮标签 但是只能获取去顶按钮事件,取消点击事件无法获取 通过判断picker的display状态也不能确 ...
- 利用工具将数据库中的表导出到word中
1.动软代码生成器 效果图: 数据库设计说明书中的一项,刚好我负责写这个文档, 18张表,前两张表是自己画表格自己填充内容,写到第三张表的时候就已经崩溃了(我觉得我耐力还是够的,怎么说也画完了两张表呢 ...
- @cacheevict 清除多个key
@Caching(evict={@CacheEvict(“a1”),@CacheEvict(“a2”,allEntries=true)}): 参考:https://www.cnblogs.com/ha ...
- DSP 运行时间计算函数--_itoll(TSCH,TSCL);
DSP OMAP 程序耗时测定 CPU周期 两种方法 利用TSCL和TSCH来计算时钟周期,这两天看了一下如何他们 DSP开发,测量某个函数或某段代码的cycles消耗是经常要做的 事情,常用的pro ...
- fragment滑动界面
1.代码页面 package com.example.fragment_list_copy; import android.app.FragmentManager;import android.sup ...
- Oracle中函数/过程返回多个值(结果集)
Oracle中函数/过程返回结果集的几种方式: 以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过. (1) 返回游标: return的类型为:SYS_REFCUR ...
- 使用Dockerfile创建镜像
Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定义的镜像. 一.基本结构 Dockerfile由一行行命令语句组成,并且支持以#开头的注释行. 一般而言,D ...
- 3.Qt GUI中一些操作记录
一.如何在Widget中利用代码添加背景图片 this->setAutoFillBackground(true); // QPalette palette = this->palette( ...