https://www.liaoxuefeng.com/wiki/897692888725344/932709047411488

MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。

此外,MySQL内部有多种数据库引擎,最常用的引擎是支持数据库事务的InnoDB。

安装MySQL

可以直接从MySQL官方网站下载最新的Community Server 5.6.x版本。MySQL是跨平台的,选择对应的平台下载安装文件,安装即可。

安装时,MySQL会提示输入root用户的口令,请务必记清楚。如果怕记不住,就把口令设置为password。

在Windows上,安装时请选择UTF-8编码,以便正确地处理中文。

在Mac或Linux上,需要编辑MySQL的配置文件,把数据库默认的编码全部改为UTF-8。MySQL的配置文件默认存放在/etc/my.cnf或者/etc/mysql/my.cnf:

[client]
default-character-set = utf8[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci

重启MySQL后,可以通过MySQL的客户端命令行检查编码:

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor...
...mysql> show variables like '%char%';
+--------------------------+--------------------------------------------------------+
| Variable_name            | Value                                                  |
+--------------------------+--------------------------------------------------------+
| character_set_client     | utf8                                                   |
| character_set_connection | utf8                                                   |
| character_set_database   | utf8                                                   |
| character_set_filesystem | binary                                                 |
| character_set_results    | utf8                                                   |
| character_set_server     | utf8                                                   |
| character_set_system     | utf8                                                   |
| character_sets_dir       | /usr/local/mysql-5.1.65-osx10.6-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)

看到utf8字样就表示编码设置正确。

安装MySQL驱动

由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。

目前,有两个MySQL驱动:

  • mysql-connector-python:是MySQL官方的纯Python驱动;

  • MySQL-python:是封装了MySQL C驱动的Python驱动。

可以把两个都装上,使用的时候再决定用哪个:

$ easy_install mysql-connector-python
$ easy_install MySQL-python

我们以mysql-connector-python为例,演示如何连接到MySQL服务器的test数据库:

# 导入MySQL驱动:
>>> import mysql.connector
# 注意把password设为你的root口令:
>>> conn = mysql.connector.connect(user='root', password='password', database='test', use_unicode=True)
>>> cursor = conn.cursor()
# 创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
# 插入一行记录,注意MySQL的占位符是%s:
>>> cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael'])
>>> cursor.rowcount
1
# 提交事务:
>>> conn.commit()
>>> cursor.close()
# 运行查询:
>>> cursor = conn.cursor()
>>> cursor.execute('select * from user where id = %s', ('1',))
>>> values = cursor.fetchall()
>>> values
[(u'1', u'Michael')]
# 关闭Cursor和Connection:
>>> cursor.close()
True
>>> conn.close()

由于Python的DB-API定义都是通用的,所以,操作MySQL的数据库代码和SQLite类似。

小结

  • MySQL的SQL占位符是%s;

  • 通常我们在连接MySQL时传入use_unicode=True,让MySQL的DB-API始终返回Unicode。

Python数据库使用MySQL相关推荐

  1. Linux:python数据库(mysql),多线程以及套接子(socket)

    一·数据库(mysql) 什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上 ...

  2. python数据库学习--Mysql

    摘要: Python使用mysql需要安装驱动,有两种1)mysqldb 2)umysql  ,两者都是开源,具体区别不详,umysql没用过 一.mysqldb 安装MySQL驱动--http:// ...

  3. python propresql mysql_python数据库操作mysql:pymysql、sqlalchemy常见用法详解

    本文实例讲述了python数据库操作mysql:pymysql.sqlalchemy常见用法.分享给大家供大家参考,具体如下: 相关内容: 使用pymysql直接操作mysql 创建表 查看表 修改表 ...

  4. 视频教程-清华-尹成老师-Python数据库3.MySQL-Python

    清华-尹成老师-Python数据库3.MySQL 毕业于清华大学,曾担任Google算法工程师,微软人工智能领域全球最具价值专家,微软Tech Ed 大会金牌讲师. 精通C/ C++,Python , ...

  5. 基于Python+Django+Vue+MYSQL的社团管理系统

    项目介绍 随着近年来大学教育的改革,大部分高校普遍开始实行学分制.弹性学制改革,这样学校在学生的学习和生活中所起的作用慢慢减小,不再是一种直接由学校决定学生的大学生活.学生对自己的学习和生活有了更大的 ...

  6. 基于Python+Django+Vue+MYSQL的医院排队叫号系统

    项目介绍 随着时代发展,越来越多的人需要到医院进行挂号检查等操作,如果全部都到医院现场挂号,一方面的浪费大量的时间和精力,另一方面是浪费大量的医疗资源,为了能够让患者更加方便的进行挂号,我们通过pyt ...

  7. 基于Python+Django+Vue+MYSQL的古诗词在线学习系统

    项目介绍 基于python+django+vue的古诗词在线学习网站则旨在通过标签分类管理等方式,实现管理员:首页.个人中心.用户管理.诗词管理.主题管理.情感色彩管理.风格管理.我的收藏管理.诗词论 ...

  8. 基于python+django+vue+mysql的天天生鲜商城

    项目介绍 根据毕业设计的需求,设计一个界面友好的天天生鲜商城系统,用户能够直观的浏览及查询生鲜信息,了解消费者的习惯,实现系统的基本功能,用户操作起来更方便.为了让管理者了解自己的权限,方便直观的操作 ...

  9. Python操作数据库之 MySQL

    Python操作数据库之MySQL 一.安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作. 如果要源码安装 ...

最新文章

  1. Android 基础 一 AndroidManifest.xml
  2. Windows服务初探
  3. 实习博士访谈:我终于拥有了在大学实验室梦寐以求的算力
  4. ARM 之八 Cortex-M/R 内核启动过程 / 程序启动流程(基于IAR)
  5. DataGridView插入图片
  6. 190628 - 解决新版本LastPass没有谷歌套件时打开就闪退的问题.md
  7. 正确使用Android性能分析工具——TraceView
  8. 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑
  9. 控制层SpringMVC和Struts2的区别
  10. android模拟器directx,DX千骑驱动器模拟器
  11. php解析微信emoji字符
  12. 360安卓_360手机助手安卓下载
  13. 套路得人心之我的运营之路!(文末有福利)
  14. Win7设置wifi热点
  15. 美国阿肯色州闪电彩虹共享一片天空(组图)
  16. 试戴耳钉会感染艾滋病吗?
  17. 新富人群的快速壮大,急需金融在线直播提供更高效和广泛的服务
  18. linux bios设置界面,BIOS怎么设置 史上最详细的bios设置图解教程
  19. ElementUI 图标Icon
  20. 软件工程学生考试系统

热门文章

  1. Jenkins部署Web项目到远程tomcat
  2. spring mvc ajax 400解决
  3. WindowProc和DefWindowProc的区别
  4. 【C++模板】特化与偏特化 template [partial] specialization
  5. android mvp模式
  6. leetcode486. 预测赢家(dp)
  7. leetcode109. 有序链表转换二叉搜索树(深度优先搜索/快慢指针)
  8. 知识力量_网络分析的力量
  9. 洛谷 P1101 单词方阵
  10. shell 本地接口自动化