【Mysql】连接MySQL

来源:互联网 发布:ubuntu阻塞脚本自启动 编辑:程序博客网 时间:2024/05/18 11:48

连接MySQL

连接MySQL是由一个连接进程和MySQL数据库实例进行通讯(本质上为进程通讯)

一、常用的进程通讯方式:

1. TCP/IP套接字

  • TCP/IP套接字方式,MySQL在任何平台下都提供。原理是基于TCP/IP协议,建立一个基于网络的连接请
    求,一般情况下客户端(client)在一台服务器上,而MySQL实例(server)在另一台服务器上,两者通过一个TCP/IP网络来进行通信。

2. 命名管道和共享内存

  • 命名管道:在Windows环境下,前提条件为如果两个需要进程通信的进程在同一台服务器上,那么可以使用命名通道(一种简单的进程间通讯(IPC)机制)。

  • 共享内存:较快的一种连接方式,允许两个不相关的进程访问同一个逻辑内存,既是不同的进程之间共享内存通常为同一段的物理内存。向共享内存中修改数据,可立刻影响到其他正在调用的进程。
    共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取

3. UNIX域套接字

  • 在Linux和UNIX环境下,可以使用UNIX域套接字(不是一个网络协议),只能MySQL客户端和数据库实例在同一个服务器上的时候才能使用。

  • UNIX域套接字API实现的简单协议族,创建后套接字和路径名绑定在一起;UNIX域套接字是面向连接的,每个连接都建议了一个新的通讯端,并且以不同的文件标识符标记。

  • UNIX域套接字是面向连接的,每个连接都建立了一个新的通讯端(不同的文件描述符,如:$_PATH/mysql.sock)

二、问题

Q:什么是进程间通信(IPC,Interprocess communication)?
A:就是在不同的进程之间传播或交换信息,一般进程的用户空间都是互相独立的。唯一的例如就是共享内存区,同时系统空间也是,因此内核也属于公共区域,各进程均可以访。

Q:什么是套接字?
A:支持TCP/IP网络通讯的基本单元,可以看作不同主机之间的进程进行双向通信的端口(一种通信双方的约定)。也就是由源IP地址和目的IP地址以及源端口号、目的端口号的组合称为套接字。其用于标识客户端请求的服务。

Q:套接字有哪几种?
A:流套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM)、原始套接字(SOCK_RAW)

Q:以上连接方式哪种最快?
A:共享内存是IPC中最快的一种连接方式,不同进程之间共享的内存通常为同一段物理内存

Q:在连接到MySQL时,MySQL会做什么事?
A:MySQL会先检查一张权限视图,用于判断发起请求的客户端IP是否允许连接到MySQL实例。

MYSQL权限视图查看

0 0