在 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 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。
真巧,刚刚做过,链接的也是MSSQL2014的数据库,并且测试是成功的
import pymssqlconn=pymssql.connect(host='主机名或IP',user='数据库用户名',password='数据库用户密码',database='数据库名',charset='utf8')
cursor =conn.cursor()
if not cursor:
raise(NameError,"连接数据库失败")
strsql="select * from 表"
try:
cursor.execute(strsql) #执行SQL语句
conn.commit() #修改数据后提交事务
except:
print(0,"错误:"+strsql)
pass
finally:
print(l,"成功!")
pass
cursor.close() #关闭对象
conn.close() #关闭数据库连接
import pymssql 这句话必须有,主要是pymssql 必须要安装上,可以使用pip list来查看是否安装
conn = pymysql.connect(host='10.10.10.10',port = 3306,user='root',passwd='passwd',db ='中文',charset="utf8")这样就可以了