MySQL 8.0外壳// 使用Unix socket和Windows命名管道连接

4.3.2使用Unix socket和Windows命名管道连接

在Unix, MySQL壳连接默认使用Unix socket当满足下列条件:

  • 没有指定一个TCP端口。

  • 没有指定主机名或它等于本地主机

  • ——套接字- s指定选项,有或没有一条通往一个套接字文件。

如果您指定——套接字没有价值和没有等号,或- s没有一个值,默认使用Unix socket文件协议。如果你指定一个通往另一个Unix套接字文件,使用套接字文件。

如果指定主机名但事实并非如此本地主机,建立TCP连接。在这种情况下,如果没有指定一个TCP端口3306使用的默认值。

MySQL外壳连接在Windows上,使用经典的MySQL协议,如果指定的主机名作为一个时期(.),MySQL Shell使用命名管道连接。

  • 如果你使用一个类uri连接字符串连接,指定user@。

  • 如果您使用的是连接键值,指定{“主机”:“。”}

  • 如果你连接使用单个参数,指定——主机=。- h。

默认情况下,管道的名字MySQL使用。您可以指定另一个命名管道使用——套接字选择或类uri连接字符串的一部分。

Unix socket类uri字符串的路径文件或窗口必须编码命名管道,使用百分比编码或通过路径周围的括号。括号消除需要百分比编码字符等/目录分隔符。如果路径Unix套接字文件中包含一个类uri字符串作为查询字符串的一部分,主要削减一定百分比编码,但如果它取代主机名,主要减少不能百分比编码,如以下示例所示:

mysql-js > \ connect user@localhost ?插座= % 2 ftmp % 2 fmysql。袜子mysql-js > \ connect user@localhost ?插座= (/ tmp / mysql.sock) mysql-js > \连接user@ / tmp fmysql % 2。袜子mysql-js > \ connect user@ (/ tmp / mysql.sock)

在Windows上,命名管道必须前缀字符\ \ \。除了使用百分比编码编码或与括号包围,如以下示例所示:

(\ \ \命名:管)\ \ \ % 3 apipe命名
重要的

在Windows上,如果一个或多个MySQL Shell会话连接到一个MySQL服务器实例使用一个命名管道,你需要关闭服务器,您必须首先关闭MySQL Shell会话。会议仍以这种方式连接会导致服务器挂在关闭过程。如果这发生,退出MySQL壳牌和服务器将继续关闭程序。

更多信息与Unix socket连接文件和Windows命名管道,明白了连接到MySQL服务器使用命令选项使用类uri字符串连接到服务器或键-值对