如何用python3连接mysql数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用python3连接mysql数据库相关的知识,希望对你有一定的参考价值。

在 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 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。

参考技术A python3使用PyMysql连接mysql数据库
python语言的3 x完全不向前兼容,导致我们在python2 x中可以正常使用的库,到了python3就用不了了 比如说mysqldb目前MySQLdb并不支持python3
python语言的3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了了.比如说mysqldb
目前MySQLdb并不支持python3.x , Python3.x连接MySQL的方案有:oursql, PyMySQL, myconnpy 等
下面来说下python3如何安装和使用pymysql,另外两个方案我会在以后再讲。
1.pymysql安装
pymysql就是作为python3环境下mysqldb的替代物,进入命令行,使用pip安装pymysql

1

pip install pymysql3

2.pymysql使用
如果想使用mysqldb的方式,那么直接在py文件的开头加入如下两行代码即可。

1
2
3
4

#引入pymysql
import pymysql
#当成是mysqldb一样使用,当然也可以不写这句,那就按照pymysql的方式
pymysql.install_as_MySQLdb()本回答被提问者采纳
参考技术B 教程 http://www.cnblogs.com/chenjingyi/p/5740415.html

如何用VC++ 连接 Mysql数据库

如何用VC++ 连接 Mysql数据库
如何用VC++ 获取 Mysql数据库
如何用VC++ 获取 Mysql数据库 中内容
如何用VC++ 操作 Mysql数据库
请给点代码 或者 例子 谢谢了 老师 高手 大婶 大叔 们

#include <mysql.h>

main()

  MYSQL *conn;
  MYSQL_RES *res;
  MYSQL_ROW row;
  char *server = "localhost";
  char *user = "root";
  char *password = ""; /* 此处改成你的密码 */
  char *database = "mysql";
  conn = mysql_init(NULL);

  /* Connect to database */
  if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))

   fprintf(stderr, "%sn", mysql_error(conn));
   exit(1);
  

  /* send SQL query */
  if (mysql_query(conn, "show tables"))

   fprintf(stderr, "%sn", mysql_error(conn));
   exit(1);
  
  res = mysql_use_result(conn);

  /* output table name */
  printf("MySQL Tables in mysql database:n");

  while ((row = mysql_fetch_row(res)) != NULL)
 
printf("%s n", row[0]);


  /* close connection */
  mysql_free_result(res);
  mysql_close(conn);
参考技术A m_DBCnt.CreateInstance(__uuidof(Connection));
m_DBCnt->ConnectionString ="driver=;server=servername;UID=user;PWD=userpwd;database=db";
m_DBCnt->Open("","","",-1);
参考技术B guygighi

以上是关于如何用python3连接mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何用VC++ 连接 Mysql数据库

如何用MySQL建立数据库

如何用Eclipse连接MySQL数据库

如何用Visual Studio操作MySQL

如何用sqlserve连接mysql数据库

如何用python实现对数据库的整理