标签: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
原文地址:http://huangzp.blog.51cto.com/12434999/1983608