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的版本≥5.5.3,可以把编码设置为utf8mb4,utf8mb4和utf8完全兼容,但它支持最新的Unicode标准,可以显示emoji字符。

安装MySQL驱动

由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。MySQL官方提供了mysql-connector-python驱动,但是安装的时候需要给pip命令加上参数--allow-external:

$ pip install mysql-connector-python --allow-external mysql-connector-python

如果上面的命令安装失败,可以试试另一个驱动:

$ pip install mysql-connector

我们演示如何连接到MySQL服务器的test数据库:

# 导入MySQL驱动:

>>> import mysql.connector

# 注意把password设为你的root口令:

>>> conn = mysql.connector.connect(user='root', password='password', database='test')

>>> 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

[('1', 'Michael')]

# 关闭Cursor和Connection:

>>> cursor.close()

True

>>> conn.close()

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

小结

执行INSERT等操作后要调用commit()提交事务;

MySQL的SQL占位符是%s。

参考源码

廖雪峰mysql安装教程 pdf_使用MySQL - 廖雪峰 Python 3 教程相关推荐

  1. 数据库系统原理与应用教程(002)—— MySQL 安装与配置:MySQL 软件的卸载(windows 环境)

    数据库系统原理与应用教程(002)-- MySQL 安装与配置:MySQL 软件的卸载(windows 环境) 目录 数据库系统原理与应用教程(002)-- MySQL 安装与配置:MySQL 软件的 ...

  2. 数据库系统原理与应用教程(001)—— MySQL 安装与配置:MySQL 软件的安装(windows 环境)

    数据库系统原理与应用教程(001)-- MySQL 安装与配置:MySQL 软件的安装(windows 环境) 目录 数据库系统原理与应用教程(001)-- MySQL 安装与配置:MySQL 软件的 ...

  3. 4步搞定MySQL安装部署(附MySQL一键式部署脚本)

    墨墨导读:良好的开端是成功的一半,从MySQL安装开始. 学习数据库技术,实际动手的第一步是安装自己的MySQL.MySQL方面也提供多样式的安装方式rpm ,tar ,源码包.当安装完投入使用之后, ...

  4. mysql装不上怎么办_MySQL数据库之mysql安装不上怎么办 mysql安装失败原因和解决方法...

    本文主要向大家介绍MySQL数据库之mysql安装不上怎么办 mysql安装失败原因和解决方法了 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. mysql数据库安装不了了!my ...

  5. MySQL安装失败清理以及MySQL卸载全面教程

    步骤一:停止MySQL服务 组合键"Ctrl+Alt+Del",打开任务管理器,在"服务"列表找到mysql服务,如:"MySQL56",& ...

  6. mysql安装后目录介绍,MySQL安装后的目录结构及配置文件详解

    MySQL安装后的目录结构及配置文件详解 MySQL安装后的目录结构及配置文件详解 MySQL目录结构说明 MySQL 安装完成后,会在磁盘上生成一个目录,该目录就被称为 MySQL 的安装目录. M ...

  7. mysql 安装盒子_Windows2008 装 MySQL 问题

    昨天在2008里装MySQL,遇以了一些问题,装的是mysql-5.6.20-winx64.msi版本,不知道是版本太新还是兼容,还是系统权限配置问题,老是报错,多数是杂乱的错误,这里主要记一下MyS ...

  8. rhel mysql安装_RHEL6.4下MySQL安装方法及简单配置

    1.MySQL安装方法简介 1.rpm包yum安装 2.通用二进制包安装 3.源码编译安装 注意:实验所采用的系统平台为:RHEL6.4 2.rpm ins 首页 → 数据库技术 背景: 阅读新闻 R ...

  9. linux mysql 安装innodb_在ubuntu Mysql 5.7 安装InnoDB Memcached 插件

    在ubuntu Mysql 5.7 安装Memcached 插件 参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-memcached-setup.h ...

最新文章

  1. 你不知道的18个Python高效编程技巧
  2. 信息检索顶会SIGIR 2021大奖出炉!山东大学荣获最佳学生论文
  3. 英文投稿成功接收的经验
  4. 河南省第十一届ACM程序设计竞赛 修路
  5. mysql运用与实践_MySQL开发与实践 PDF 下载
  6. 抢红包神器上线,再也不怕抢不到红包了!
  7. 直接将自身代码注入傀儡进程
  8. 限时秒杀┃月销10000+件,风靡全国的steam科学实验套装
  9. 用Spark学习FP Tree算法和PrefixSpan算法
  10. 9篇!悉尼科技大学入选CVPR2021都研究什么?
  11. nginx反代web页面没有正常显示_web漏洞-SSI注入漏洞深入详解
  12. 建筑工程师的转行学计算机科学与技术的抉择
  13. 基于微信校园二手书交易小程序系统 毕业设计毕设参考
  14. linux css压缩工具下载,推荐15个最好用的JavaScript代码压缩工具
  15. 虚拟化在防泄密领域的痛点
  16. Python爬虫基础-mysql数据库
  17. ThreeJS加载geojson数据实现3D地图
  18. Odoo开源ERP:功能模块操作-销售功能篇
  19. 气体灭火系统的发展历程
  20. 关于ionic2 app 接入支付宝支付出现ALI40247(系统繁忙,请稍后再试)

热门文章

  1. PHP能不能让一串代码现实,一段让你认清现实的Java代码.java
  2. 鸿蒙开发者社区入口,鸿蒙OS 社区
  3. 嵌套套娃,MySQL子查询,单行与多行子查询,相关和不相关(关联)子查询,完整详细可收藏
  4. (1.1)HarmonyOS鸿蒙中Ability概念及意义
  5. html 高度不够,HTML/CSS:Div未扩展到内容高度
  6. php滴滴平台接口,图片服务API文档
  7. linux中查找文件属于那个软件包的方法
  8. 极光推送服务端API(定时推送任务,推送到指定设备,推送到所有设备)
  9. 【Electron】Electron开发入门(八):自定义electron框架外壳(shell)的菜单(Menu)...
  10. Java学习笔记之:Java String类