python之mysql(一)

1.安装客户端

mysql数据库现在已经成为市场占有率最高的数据库,子开发过程中,很多情况下我们都需要操作
mysql,所以对于python操作mysql的了解是必不可少的.
python标准数据库接口为Python DB-API,Python DB-API为开发人员提供了数据库应用
编程接口,参考地址:https://wiki.python.org/moin/Databaseinterfaces,你可以查看python
支持数据库的详细列表。不同的数据库需要下载不同的DB API模块.DB-API是一个规范,
它定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和
多种多样的数据库接口程序提供一致的访问接口.


Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同
的方式操作各数据库.

Python DB-API使用流程:
1.引入API模块
2.获取与数据库的连接.
3.执行SQL语句和存储过程.
4.关闭数据库连接

MySQLdb是用于Python链接Mysql数据库的接口,它实现了Python数据库API规范V2.0,基于
MySQL C API上建立的.

如果是windows系统,登录https://pypi.python.org/pypi/MySQL-python/1.2.5找到.exe结尾的包,
http://www.codegood.com/archives/129
下载安装就好了,然后在cmd下执行:
python
import MySQLdb

需要把路径添加到环境变量中;


linux
yum install -y python-devel
yum install -y mysql-devel
yum install -y gcc
unzip MySQL-python-1.2.5.zip
cd MySQL-python-1.2.5
python setup.py build
python setup.py install

python
import MySQLdb

在linux服务器上安装mysql-server,我安装的是mysql5.6
yum install -y mysql-community-server-5.6.34-2.el7.x86_64
centos7版本以前:service mysqld-restart
centos7版本以后:systemctl restart mysql.service
mysql进行授权
mysql
create databases python
grant all privileges on *.* 'xiang'@'%' identified by '123456';
flush privileges

解释:
Mysql命令进入mysql数据库,create 用来创建库名python,
grant 进行授权,授权xiang用户对所有服务器,所有库,所有表都有权限;

 2.数据库连接

MySQLdb提供了connect方法用来和数据库建立连接,接收数个参数,返回连接对象:
首先子mysql建立python库:create database python
conn=MySQLdb.connect(host="192.168.48.128",user="xiang",passwd="123456",db="python",charset="utf8")

比较常用的参数:
host:数据库主机名,默认是用本地主机;
user:数据库登录名,默认是当前用户;
passwd:数据库登录的密码,默认是空;
db:要使用的数据库名,没有默认值;
port:MySQL服务使用的TCP端口,默认是3306,数字类型;
charset:数据库编码;

更多关于参数的信息可以查这里:http://mysql-python.sourceforge.net/MySQLdb.html

3.mysql事务

MySQL事务主要用于处理操作量大,复杂度高的数据。比如,你操作一个数据库,
公司的一个员工离职了,你要做数据库中删除他的资料,也要删除该人员相关的,
比如邮箱,个人资产等。这些数据库操作语言就构成了一个事务。
在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务,所以很多情况下我们都使用
innodb引擎.
事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。
一般来说,事务是必须满足4个条件(ACID):Atomicity(原子性),Consistency(稳定性),
Isolation(隔离性),Durability(可靠性).

1.事务的原子性:一组事务,要么成功,要么撤回;
2.稳定性:有非法数据(外键约束之类),事务撤回;
3.隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他
事务会撤回.事务的100%隔离,需要牺牲速度;
4.可靠性:软,硬件崩溃后,Innodb数据表驱动会利用日志文件重构修改.
可靠性和高速度不可兼得,innodb_flush_log_at_trx_commit选项,决定什么时候把
事务保存到日志里.

而mysql子默认的情况下,把每一个select,insert,update,delete等作为一个事务的,
登录mysql服务器,进入mysql,执行以下命令:
show variables like 'auto%';

 

posted on 2017-11-21 08:05  阿文闲聊  阅读(178)  评论(0编辑  收藏  举报