首页 > 数据库 >MySQL客户端建立连接的两种类型

MySQL客户端建立连接的两种类型

时间:2023-04-04 16:46:06浏览次数:48  
标签:grep -- MySQL mysql root 连接 客户端

 

MySQL客户端建立连接的两种类型

 

通常,默认情况下,客户端连接MySQL服务器有两种类型:

使用 Unix 套接字文件通过文件系统中的文件进行连接(默认/tmp/mysql.sock),

或者使用通过端口号连接的 TCP/IP(此类通常涉及远程网络交互)。

Unix 套接字文件连接比 TCP/IP 更快,但只能在连接到同一台计算机上的服务器时使用。

其中,

  • 当客户端连接MySQL服务器,如果没有指定-h或者指定-h为localhost,则会连接到本地的主机(即此时客户端位于服务器上)。
     在Unix 上,MySQL 程序对主机名进行 localhost特殊处理,客户端使用 Unix 套接字文件进行连接。选项--socketMYSQL_UNIX_PORT环境变量可用于指定套接字名称。
  • 否则,连接使用TCP/IP。

--protocol选项使您能够使用特定的传输协议,即使其他选项通常会导致使用不同的协议。也就是说, --protocol明确指定传输协议并覆盖前面的规则,即使对于 localhost.

要确保客户端与本地服务器建立 TCP/IP 连接,请使用--host或 -h指定主机名为 127.0.0.1(而不是 localhost),或者本地服务器的 IP 地址或名称。您还可以通过使用--protocol=TCP选项明确指定传输协议,即使对于localhost,也是如此。

 

接下来实际测试一下。

开启两个CRT的会话,分别为S1,S2。

以下按照顺序执行。

测试1,--no-defaults避免my.cnf中已有的[client]参数的影响。

其中,netstat前后均无任何输出,表示mysql连接没有产生tcp协议。

S1:[root@mysql ~]# netstat -anputwo | grep mysqld | grep ESTABLISHED

S2:[root@mysql ~]# mysql --no-defaults -uroot -proot -S /data/mysql3306/mysql3306.sock
...省略部分内容...
(root@localhost 11:54:54) [(none)]> 

S1:[root@mysql ~]# netstat -anputwo | grep mysqld | grep ESTABLISHED

 

 

测试2:产生了tcp连接的协议。

S1:[root@mysql ~]# netstat -anputwo | grep mysqld | grep ESTABLISHED

S2:[root@mysql ~]# mysql --no-defaults -uroot -proot -h127.0.0.1
...省略部分内容...
([email protected] 12:01:22) [(none)]> 

S1:[root@mysql ~]# netstat -anputwo | grep mysqld | grep ESTABLISHED
tcp6       0      0 127.0.0.1:3306          127.0.0.1:61023         ESTABLISHED 1659/mysqld          keepalive (7212.78/0/0)

 

测试3:在确认MySQL正常开启提供服务的前提下:如下,其中报错找不到socket文件,表示-hlocalhost默认是会找socket文件来连接数据库的,只是找不到而已。

默认的socket文件被我另外定义在别处了。

[root@mysql ~]# mysql --no-defaults -uroot -proot -hlocalhost
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

 

测试4:

S1:[root@mysql ~]# netstat -anputwo | grep mysqld | grep ESTABLISHED

S2:[root@mysql ~]# mysql --no-defaults -uroot -proot -hlocalhost --protocol=tcp
...省略部分内容...
([email protected] 12:10:21) [(none)]> 

S3:[root@mysql ~]# netstat -anputwo | grep mysqld | grep ESTABLISHED
tcp6       0      0 127.0.0.1:3306          127.0.0.1:61029         ESTABLISHED 1659/mysqld          keepalive (7173.83/0/0)

 

 

 

参考官网:

https://dev.mysql.com/doc/refman/8.0/en/connecting.html

https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html

 

标签:grep,--,MySQL,mysql,root,连接,客户端
From: https://www.cnblogs.com/PiscesCanon/p/17286909.html

相关文章

  • mysql 插入解决时间报错 Incorrect datetime value:''
    1.打开MySQL命令行,检查当前数据库的严格模式:SELECT@@GLOBAL.sql_mode; 2.更新全局sql_mode参数:SETGLOBALsql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';3.检查是否更新成功:SELECT@@GLO......
  • flask框架03 蓝图的使用 g对象 数据库连接池
    今日内容目录今日内容1蓝图的使用2g对象3数据库连接池1蓝图的使用#blueprint翻译过来的,称之为蓝图#作用是:之前全在一个py中写flask项目,后期肯定要划分目录#不用蓝图,划分目录 no_blueprint_flask#项目名src#核心源码位置__i......
  • Microsoft Remote Desktop(微软远程连接软件)v10.8.1中文正式版
    MicrosoftRemoteDesktopmac版是Macos上一款微软远程连接软件,RemoteDesktop下载可以通过Mac电脑进行远程管理Windows平台的程序访问与文件管理等操作,十分好用。在MicrosoftRemoteDesktop客户端中使用RemoteFX体验Windows的强大功能,旨在帮助您在任何地方完成工作。Macw提供mic......
  • mysql中find_in_set()函数的使用
    首先举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有1头条、2推荐、3热点、4图文等等。现在有篇文章他既是头条,又是热点,还是图文,type中以1,3,4的格式存储。那我们如何用sql查找所有type中有4的图文类型的文章呢?? 这就要我们的find_in_set出马的时候到了。......
  • Mysql常见知识点【新】
    1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?2、MySQL的技术特点是什么?MySQL数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛......
  • 1 蓝图的使用 、2 g对象 、3 数据库连接池
    目录1蓝图的使用2g对象3数据库连接池1蓝图的使用#blueprint翻译过来的,称之为蓝图#作用是:之前全在一个py中写flask项目,后期肯定要划分目录#不用蓝图,划分目录 no_blueprint_flask#项目名src#核心源码位置__init__.py#包里......
  • 使用wsimport快速生成soap客户端代码
    在jdk的bin目录下cmd进入操作界面使用命令wsimport.exe-encodingutf-8-keep-s输出java文件路径wsdl文件路径 ......
  • Linux安装mysql
    rpm-qa|grepmysql如果有服务就卸载yumremove'软件名'wgethttps://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpmyum-yinstallmysql80-community-release-el7-3.noarch.rpmrpm--importhttps://repo.mysql.com/RPM-GPG-KEY-mysql-2022yum-yinstal......
  • MySQL 的 crash-safe 原理解析
    vivo互联网技术微信公众号 作者:xieweipengMySQL作为当下最流行的开源关系型数据库,有一个很关键和基本的能力,就是必须能够保证数据不会丢。那么在这个能力背后,MySQL是如何设计才能保证不管在什么时间崩溃,恢复后都能保证数据不会丢呢?有哪些关键技术支撑了这个能力?本文将为我们一......
  • [小迪安全]笔记 day12、13 MySQL注入
    1.简单案例1.1简易代码分析SQL注入原理http://localhost:8085/sqli-labs/Less-2/index.php?id=2id=2正常查询http://localhost:8085/sqli-labs/Less-2/index.php?id=-2id=-2的话什么都查不出来,表中没有负数的id。http://localhost:8085/sqli-labs/Less-2/index.php?......