涉及到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方式连接)的更多相关文章

  1. Windows环境下,本地Oracle创建dblink连接远程mysql

    前言 我的情况是,本地安装了oracle(安装完成后带有SQL Developer,不需要再安装instantclient),创建dblink去连接远程的mysql.有些朋友可能是 本地使用PL\SQ ...

  2. 《高可用MySQL》1 – Windows环境下压缩版MySQL安装

    近日在读O’REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容.Master-Slave这东西吧,在许多公司都是标配,开发中基本天 ...

  3. [原]我在Windows环境下的首个Libevent测试实例

    libevent对Windows环境也有很好的支持,不过初次学习和编译libevent简单实例,总是有一些陌生感的,只有成功编译并测试了一个实例,才会有恍然大悟的感觉.下面将要讲到的一个实例是我从网上 ...

  4. Mysql迁移工具在生产环境下的使用

    在产品迭代开发发布过程中,由于业务需求的增加,数据库难免会有结构调整等操作. 在每个版本发布过程中怎么控制每个版本server端程序与数据库版本保持一致,以及数 据库升级.回滚等操作. 本博文宅鸟将向 ...

  5. MySQL分库分表环境下全局ID生成方案 转

    在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作.在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象.但是当我们对数据库进行了分库 ...

  6. MySQL分库分表环境下全局ID生成方案

    在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作.在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象.但是当我们对数据库进行了分库 ...

  7. 【转】MySQL分库分表环境下全局ID生成方案

    转载一篇博客,里面有很多的知识和思想值得我们去思考. —————————————————————————————————————————————————————————————————————— 在大 ...

  8. MySQL - MySQL++在c++11环境下接口设计

    安装官方提供的mysqlconnect后,可以使用mysql++库,在官方的C API上再次做一个c++面向对象封装. 这里mysql++的安装依赖于mysql-connector-c.安装参考:ht ...

  9. 在mysql 5.6的环境下修改生产环境的表结构(在线ddl) ----工具pt-osc

    随着需求的变化越来越快,在线修改表结构变得越来越需要. 在mysql5.6以前,mysql的修改表结构操作会锁表,这样就会造成开发人员或者DBA修改表结构必须要等到凌晨流量谷值或者停服修改.这样必定会 ...

随机推荐

  1. php-fpm重启操作

    启动php-fpm:/usr/local/php/sbin/php-fpm php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/ph ...

  2. Spring Boot - AOP(面向切面)-切入点表达式

    切入点指示符用来指示切入点表达式目的,在 Spring AOP 中目前只有执行方法这一个连接点,Spring AOP 支持的 AspectJ 切入点指示符,切入点表达式可以使用 &&. ...

  3. MPU9250九轴陀螺仪--连接MPU9250

    树莓派连接MPU9250九轴加速度传感器1,配线方法 树莓派侧 MPU9250侧 3.3V VCC (SDA)GPIO2 SDA (SCL)GPIO3 SCL GND GND 2,I2C有效在树莓派里 ...

  4. Restful OData Protocol

    Web服务有两种实现方式: 一是SOAP协议方式 二是REST方式. SOAP是一套完整的实现Web服务的解决方案.这里有必要先简单了解SOAP方式的Web服务,然后对比SOAP方式,我们会发现RES ...

  5. WAMP中mysql服务突然无法启动 解决方法

    wamp的mysql服务前两天还能用,今天突然不能无法启动了,原因可能是近期电脑强行关机,删除wamp\bin\mysql\mysql5.6.17\data目录下的ib_logfile0和ib_log ...

  6. 1、Netty 实战入门详解

    一.Netty 简介 Netty 是基于 Java NIO 的异步事件驱动的网络应用框架,使用 Netty 可以快速开发网络应用,Netty 提供了高层次的抽象来简化 TCP 和 UDP 服务器的编程 ...

  7. CentOS_6.5配置iptables防火墙策略

    ###############配置filter表防火墙############### #清除预设表filter中的所有规则链的规则iptables -F #清除预设表filter中使用者自定链中的规则 ...

  8. Linux基础之常用命令整理(二)

    Linux系统启动流程 bios(找到启动介质) --> mbr(找到boot loader  512B 446引导信息 64分区信息 2 标志位 ) -->grub(选择操作系统或者内核 ...

  9. How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)

    How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)

  10. 转: 解决Setting property 'source' to 'org.eclipse.jst.jee.server的问题

    我发现这个问题上网搜索 ,找到的地址为:http://blog.csdn.net/z69183787/article/details/19911935 .但是他的标题上也有一个"转" ...