码迷,mamicode.com
首页 > 数据库 > 详细

python连接mysql

时间:2017-11-20 21:52:17      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:python

1.安装客户端

windows下

下载地址https://pypi.python.org/pypi/MySQL-python/1.2.5

安装完毕之后查看接口目录:技术分享图片


注:在导入模块时,如果报错,则需要加一下系统环境变量

技术分享图片


Linux下:

源码下载:https://pypi.python.org/pypi/MySQL-python/1.2.5

安装MySQL-python,并导入接口模块

yum install -y python-devel mysql-devel gcc

unzip MySQL-python-1.2.5.zip

cd MySQL-python-1.2.5

python setup.py build

python setup.py install



2.连接数据库

1)先给mysql进行授权:

create database python;

grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘;

flush privileges;


MySQLdb提供了与数据库的连接方法:

conn=MySQLdb.connect(host="192.168.2.230",user="root",passwd="123456",db="python",charset="utf8")


常用的参数:

host:数据库主机名.默认是用本地主机

user:数据库登陆名.默认是当前用户

passwd:数据库登陆的秘密.默认为空

db:要使用的数据库名.没有默认值

port:MySQL服务使用的TCP端口.默认是3306,数字类型

charset:数据库编码


为了规范代码,可以先定义mysql连接信息,后期再调用,便于扩展,如下:

import MySQLdb

def connect_mysql():

   db_config = {

      "host": "192.168.2.230",

       "port": 3306,

       "user": "root",

       "passwd": "123456",

       "db": "python",

       "charset": "utf8"

   }

   try:

       cnx = MySQLdb.connect(**db_config)

   except Exception as e:

       raise e

   return cnx


3.mysql事务

有一个参数autocommit就是自动提交的意思,每执行一个mysql的select,insert,update等操作,就会进行自动提交。如果把改选项关闭,我们就可以每次执行完一次代码就需要进行手动提交,connect对象给我们提供了两种办法来操作提交数据。


mysql事务的方法

commit():提交当前事务,如果是支持事务的数据库执行增删改后没有commit则数据库默认回滚,白操作了

rollback():取消当前事务



4.mysql操作数据

例子:

import MySQLdb

def connect_mysql():

   db_config = {

       "host": "192.168.2.230",

       "port": 3306,

       "user": "root",

       "passwd": "123456",

       "db": "python",

       "charset": "utf8"

   }

   try:

       cnx = MySQLdb.connect(**db_config)

   except Exception as e:

       raise e

   return cnx

if __name__ == "__main__":

   sql = "create table test(id int not null);insert into test(id) values(100);"

   cnx = connect_mysql()

   cus = cnx.cursor()

   try:

       cus.execute(sql)

       cus.close()

       cnx.commit()

   except Exception as e:

       raise e

       cnx.rollback()

   finally:

       cnx.close()



说明:

__name__为主函数

mysql语句

mysql创建连接

游标      #事物相关操作

执行mysql语句

关闭游标  #事物相关操作

提交      #事物相关操作

如果有异常,则触发,并回滚

关闭连接


结果:

mysql> show tables;

+------------------+

| Tables_in_python |

+------------------+

| test             |

+------------------+

1 row in set (0.00 sec)

mysql> select * from test;

+-----+

| id  |

+-----+

| 100 |

+-----+

1 row in set (0.08 sec)







python连接mysql

标签:python

原文地址:http://huangzp.blog.51cto.com/12434999/1983608

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!