在 Python 语言环境下我们这样连接数据库。
In [1]: from mysql import connector
In [2]: cnx = connectorconnect(host="17216192100",port=3306,user="appuser",password="xxxxxx")
但是连接数据库的背后发生了什么呢?
答案
当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由 MySQL 协议 规定。MySQL 协议:>
MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。
2 MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。
3 MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。
4 MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。
class Buffer(object):
MAXSIZE = 8192
def __init__(self, conn, sql):
selfconn = conn
selfsql = sql
selfbuffer = []
def append(self, data):
selfbufferappend(data)
if len(selfbuffer) > selfMAXSIZE:
selfflush()
def flush(self):
data, selfbuffer = selfbuffer, []
curr = selfconncursor()
currexecutemany(selfsql, data)
selfconncommit()
# here are your code for init database connect conn_src and conn_store
buff = Buffer(conn_store, "insert into sybase_user values (%s, %s)")
sql_query = "select aid, aname from user_info a where aid=%s"
curr_src = conn_srccursor()
curr_srcexecute(sql_query, '0001')
for row in curr_src:
buffappend(row)
buffflush()
以上就是关于如何使用python连接mysql数据库全部的内容,包括:如何使用python连接mysql数据库、python 读取本地数据然后插入到另一个数据库中、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)