python操作mysql

python

一、首先安装mysql数据库

准备材料:mysql源码包

1、安装rpm包:  ncurses-devel   gcc-c++

2、创建data目录: 

  

3、创建用户及组并将数据目录修改属主属组:

4、将cmake解包并执行:

5、将mysql解包并执行:

cmake 

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/data/mysql/mysql

-DDEFUALT_CHARSET=utf8

-DEXTRA_CHARSETS=all

-DDEFAULT_COLLATION=utf8_general_ci

-DMYSQL_UNIXADDR=/tmp/mysql.sock

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGIN=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1

-DWITH_MYISAM_STORAGE_ENGINE=1

-DENABLE_LOCAL_INFILE=1

-DENABLE_DTRACE=0

-DMYSQL_USER=mysql

-DMYSQL_TCP_PORT=3306

-DWITH_EMBEDDED_SERVER=1

然后make  &&  make  install

如果安装不成功,要清空配置:make  clean  all

6、安装成功后再:

7、然后在/etc/profile里加入:

7、然后初始化:

初始化后若启动失败,可在初始化时候再加上: --ldata=/var/lib/mysql   再试一下

8、启动报错问题:

此问题重新初始化下数据库:

再重启,可以正常启动。

更多:http://www.cnblogs.com/wupeiqi/articles/5699254.html

二、安装API   pymysql

pip3 install pymysql即可

pymysql的使用:

import pymysql

# 创建连接

conn = pymysql.connect(host='192.168.254.129', port=3306, user='test',passwd='123456',db='test')

# 创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

print(cursor)

# 执行sql命令,并返回受影响的行数

# ret = cursor.execute("insert into sanguo VALUES ('zhugeliang',21,'shu',4)")

# 可以使用百分号

# ret = cursor.execute("select * from sanguo WHERE id > %s" %2)

# 批量修改

# ret = cursor.executemany("insert into sanguo (name,age) VALUES (%s,%s)", [('xunyu',23),('zhangfei',22)])

ret = cursor.execute("select name,age from sanguo where id>3")

print(ret)

# 获取第一行数据

# row_1 = cursor.fetchone()

# 获取指定多行数据

# row_2 = cursor.fetchmany(2)

# 获取全部数据

row_3 = cursor.fetchall()

print(row_3)

# 提交,不然无法保存修改

conn.commit()

# 关闭游标

cursor.close()

# 关闭连接

conn.close()

# 获取最新自增id,即执行以上sql时,获取到的新的第一个id,如果sql没有使id增加,则返回None

new_id = cursor.lastrowid

print(new_id)

import pymysql

# 创建连接

conn = pymysql.connect(host='192.168.254.129', port=3306, user='test',passwd='123456',db='test')

# 创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

print(cursor)

# 执行sql命令,并返回受影响的行数

# ret = cursor.execute("insert into sanguo VALUES ('zhugeliang',21,'shu',4)")

# 可以使用百分号

# ret = cursor.execute("select * from sanguo WHERE id > %s" %2)

# 批量修改

# ret = cursor.executemany("insert into sanguo (name,age) VALUES (%s,%s)", [('xunyu',23),('zhangfei',22)])

ret = cursor.execute("select name,age from sanguo where id>3")

print(ret)

# 获取第一行数据

# row_1 = cursor.fetchone()

# 获取指定多行数据

# row_2 = cursor.fetchmany(2)

# 获取全部数据

row_3 = cursor.fetchall()

print(row_3)

# 提交,不然无法保存修改

conn.commit()

# 此时的游标在最后,游标向前移动1

# cursor.scroll(-1,mode='relative')

# print(cursor.fetchall())

# 此时游标在最后,游标移动到1位置

# cursor.scroll(1,mode='absolute')

# print(cursor.fetchall())

# 关闭游标

cursor.close()

# 关闭连接

conn.close()

# 获取最新自增id,即执行以上sql时,获取到的新的第一个id,如果sql没有使id增加,则返回None

new_id = cursor.lastrowid

print(new_id)

示例

PS:fetch默认获取的数据是元祖类型,如果想要字典类型的数据,可python plain">cursor =conn.cursor(cursor=pymysql.cursors.DictCursor)

在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:
 cursor.scroll(1,mode='relative')  # 相对当前位置移动

 cursor.scroll(2,mode='absolute') # 相对绝对位置移动

以上是 python操作mysql 的全部内容, 来源链接: utcz.com/z/389491.html

回到顶部