连接mysql操作是一个连接进程和mysql数据库实例进行通信,本质上是进程通信。进程通信方式包含管道、命名管道、TCP/IP套接字、UNIX套接字。
1.TCP/IP,一台服务器访问另一台服务器上的数据库实例
如:mysql –h1.1.1.1 –uroot –p
ps:在通过TCP/IP连接到MySQL实例时,MySQL会先检查一张权限视图,用来判断发起请求的客户端IP是否允许连接到MySQL实例。
该视图在mysql库下,表名为user:
use mysql;
select host, user from user;
host代表此用户(root)只能通过localhost的ip访问此数据库。
host:%,表示在任何IP段下连接该实例。
host:192.168.24.%,表示在任何192.168.24.段下连接该实例.
2.命名管道和共享内存
在Windows 2000、Windows XP、Windows 2003和Windows Vista以及在此之后的Windows操作系统中,如果两个需要通信的进程在同一台服务器上,那么可以使用命名管道,SQL Server数据库默认安装后的本地连接也使用命名管道。在MySQL数据库中,需在配置文件中启用--enable-named-pipe选项。在MySQL 4.1之后的版本中,MySQL还提供了共享内存的连接方式,在配置文件中添加--shared-memory。如果想使用共享内存的方式,在连接时,Mysql客户端还必须使用-protocol=memory选项。
3.Unix域套接字
UNIX域套接字不是一个网络协议,所以只能在mysql客户端和数据库实例在同一台服务器的情况下使用。用户可以在配置文件中指定套接字文件的路径如:--socket=/tmp/mysql.sock
或者通过mysql –uroot –S /tmp/mysql.sock