本地程序和本地数据库MySQL的通信?

本地程序和本地数据库MySQL的通信?,第1张

地程序和本地数据库 MySQL 的通信通常是通过网络套接字进行的。网络套接字是指用于在计算机网络中传输数据的通信端口,可以用于实现计算机之间的数据传输。

MySQL 数据库提供了一个网络套接字协议,可以让程序通过网络套接字与数据库通信。程序可以通过发送 SQL 语句来执行数据库 *** 作,并通过接收 MySQL 数据库的响应来获取执行结果。

要进入该程序的内部数据库,需要使用程序提供的数据库访问接口,并输入正确的数据库用户名和密码。通常情况下,只有拥有足够权限的用户才能进入数据库。如果你没有足够的权限,可以尝试联系数据库管理员或者系统管理员,请求授予你访问数据库的权限。

另外,你还可以尝试使用数据库管理工具(比如 MySQL Workbench)来访问数据库。这些工具通常提供了一个图形化的界面,可以方便地执行数据库 *** 作,并显示执行结果。你只需要输入正确的数据库连接信息(包括主机名、端口号、用户名和密码)即可访问数据库。

在 Python 语言环境下我们这样连接数据库。

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")

但是连接数据库的背后发生了什么呢?

答案

当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由 MySQL 协议 规定。MySQL 协议:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。

MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。

2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。

3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。

4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。

mysqli.dll是PHP对mysql新特性的一个扩展支持。在PHP5中可以在php.ini中加载

mysql后面的i,指improved, interface, ingenious, incompatible or incomplete(改扩展仍在开发中,因为MYSQL4。1和MYSQL5都没有正式推出尚在开发中,新的特性没有完全实现)

mysqli想实现的目标具体有:

-更简单的维护

-更好的兼容性

-向后兼容

mysql(指PHP中的模块)发展到现在显得比较凌乱,有必要重新做下整理。同时,有必要跟上MYSQL(DBMS)的发展步伐,加入新的特性的支持,以及适应MYSQL(DBMS)以后的版本。所以诞生了mysqli.dll

mysqli.dll的特性:

-可以和mysql.dll一样的方式使用

-支持OO接口,简简单单调用

-支持MYSQL4。1引入的新特性

-通过mysqli_init() 等相关函数,可以设置高级连接选项


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8627861.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存