MySQL技术内幕InnoDB存储引擎 - 连接Mysql

连接Mysql操作的本质是:

一个进程和Mysql实例进程的通信。

进程通信的方式有:共享内存、管道、命名管道、命令字、TCP\IP套接字、UNIX域套接字。

 

TCP\IP

mysql -h 192.168.0.101 -u root -p

在通过 TCP/IP 连接到 MySQL 实例时, MySQL 数据库 先检查一张权限视图,

用来判断 起请求的客户 IP 是否允许连 MySQL 实例。

该视图在Mysql架构下,表名为 user:

SELECT host , user, password FROM mysql.user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root |                                           |
| 127.0.0.1 | root |                                           |
| ::1       | root |                                           |
| localhost |      |                                           |
| localhost | test | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
| %         | test | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
+-----------+------+-------------------------------------------+
6 rows in set

上表中的host 表示 该用户允许从哪些来源IP发起登录请求。

 

命名管道和共享内存
在Windows机器上,如果客户端和服务器进程在同一台机器上,则可以使用命令管道的方式进行登录。
这点和MS SqlServer有点类似。
 
  • 命令管道登录:
  在配置文件中启用 --enable-named-pipe 选项
  • 共享内存登录:
  在配置文件中添加 --shared-memory 选项
  MySQL 客户端还必须使用 --protocol=memory 选项
 
UNIX 域套接字
在 Linux 和 UNIX 下,可以使用这种方式。
UNIX域套接字其实不是一个网络协议,所以客户端和服务器进程也需要在同一台机器上。
 
该登录方式需要在配置文件中指定套接字文件的路径:
服务端:  [mysqld] 下配置:   socket  = /tmp/mysql.sock
客户端:  连接时使用:mysql -uroot - S /tmp/mysql.sock
 
 
 
 
[mysqld]

posted on 2020-01-05 16:57  HB1  阅读(190)  评论(0)    收藏  举报

导航