
3.3 MySQL数据库
数据库是绝大多数商业软件避不开的一项支持技术,大多数的网站也需要用数据库来存储数据。因此,我们若想了解关于网站开发的相关内容,必须学习数据库相关知识。
3.3.1 MySQL数据库简介及安装
Python支持的数据库类型丰富,包拪MySQL、SQL Server、Oracle、Interbase、Sybase、Informix、PostgreSQL等世界主流数据库,同时Python自带SQLite单机版本的数据库软件。
这里综合考虑了数据库的易学性、在网站项目上的普及性、可获得性(主要考虑是否免费)、稳定性、可继续发展性等因素,选择使用MySQL数据库,下面进行相应介绍。
MySQL数据库最早由芬兰人Monty在1995年发明,由瑞典MySQL AB公司负责运营。MySQL是一款著名的开源关系型数据库系统(Relational Database Management System),它支持跨平台运行,支持的操作系统有Linux、macOS、Windows、AIX、FreeBSD、HP-UX、NovellNetware、OpenBSD、OS/2 Wrap、Solaris等。
MySQL提供了一般关系型数据库所有的技术标准,如SQL(Structured Query Language,结构化查询语言)技术标准,支持多线程,可为不同的编程语言提供数据库调用接口(API),提供可视化数据库管理系统及集群(Cluster)分布式版本。
2008年,Sun公司收购了MySQL数据库;2009年,Oracle公司又收购了Sun公司的MySQL。目前,MySQL继续提供开源免费社区版、商业授权版。MySQL数据库原作者Monty为了防止Oracle公司将MySQL闭源,在2009年又独自开发了MariaDB数据库,其特性与MySQL数据库兼容,现已成为主流Linux发行版的预装数据库,获得了市场的高度认可。
访问MySQL数据库社区版下载地址,界面如图3.18所示。在图3.18左边虚线椭圆里确认操作系统类型,然后单击右边虚线椭圆处的“Download”按钮,进入新下载界面,开始下载MySQL安装包。

图3.18 MySQL数据库社区版下载界面
第一步:通过鼠标左键双击安装包,安装进度界面如图3.19所示。

图3.19 安装迚度界面
第二步:在图3.20所示的“Choosing a Setup Type”界面选择“Custom”,单击“Next”按钮。

图3.20 Choosing a Setup Type界面
第三步:如图3.21所示,在“Select Products and Features”界面从“Available Products”列表里选择安装产品,然后单击“右箭头”按钮将产品添加到“Products/Features To Be Installed”列表,列表内需要选择安装的产品包拪MySQL Servers、MySQL WorkBench、MySQL Documentation这3项。最后,单击“Next”按钮。

图3.21 选择安装产品
说明
关于MySQL Servers、MySQL WorkBench、MySQL Documentation,说明如下。
● MySQL Servers是实现服务器端后台数据库管理的软件,是MySQL数据库系统的核心软件。
● MySQL WorkBench是为MySQL数据库系统开发人员提供的可视化的SQL操作、数据库建模及数据库管理功能。
● MySQL Documentation是MySQL数据库系统的使用帮助文档。
第四步:如图3.22左图所示,在“Path Conflicts”界面中选择需要安装的路径,一般情冴下会将“Data Directory”挃向除 C 盘以外的其他安装盘下,同时要确保该安装盘空间足够大(不低于200MB),然后单击“Next”按钮。
第五步:如图3.22右图所示,在“Installation”界面单击“Execute”按钮,开始安装MySQL相关产品。

图3.22 Path Conflicts安装路径选择界面(左),Installation安装界面(右)
第六步:如图3.23(a)所示,在“Product Configuration”界面单击“Next”按钮。
第七步:如图3.23(b)所示,在“High Availability”界面选择默认的“Standalone MySQL Server”选项,单击“Next”按钮。
第八步:如图3.23(c)所示,在“Type and Networking”界面选择默认网络设置参数(可以记一下端口号),单击“Next”按钮。
第九步:如图3.23(d)所示,在“Authentication Method”界面选择第2个选项“Use Legacy Authentication Method”,单击“Next”按钮。在这一步中,如果是内部开发,应尽量选择第2个选项,避免SHA256最新加密算法对其他软件的支持存在问题。

图3.23 第六步、第七步、第八步、第九步安装选择界面
第十步:如图3.24左图所示,在“Accounts and Roles”界面设置root超级用户的密码,“MySQL Root Password:”为第一次输入的密码(本书密码统一用“cats123.”),“Repeat Password:”为第二次核对输入的密码,密码输入正确,单击“Next”按钮。
第十一步:如图3.24右图所示,在“Windows Service”界面选择默认设置,单击“Next”按钮。
第十二步:图3.25左图为“Apply Configuration”界面,单击“Execute”按钮,执行安装。若安装成功,会显示如图3.25右图所示的安装成功界面。在此界面上单击“Finish”按钮,安装完成。

图3.24 Accounts and Roles界面(左),Windows Service界面(右)

图3.25 Apply Configuration界面(左),安装成功界面(右)
然后,我们要继续安装MySQL Workbench数据库可视化管理工具,如图3.26所示。

图3.26 MySQLWorkbench数据库可视化管理工具安装界面
在图3.26所示的界面上单击“root”账号名称将弹出如图3.27所示的界面,在该界面输入上述第十步设置的密码,单击“OK”按钮,进入图3.28所示的MySQL Workbench数据库管理界面。

图3.27 输入密码界面

图3.28 MySQL Workbench数据库管理界面
进入MySQL Workbench数据库管理界面,可以进行数据库可视化操作,从建立数据库实例名、表结构,到对表里的记录进行增、删、改、查操作。
本节我们仅介绍了对 MySQL 数据库的基本安装和使用斱法,若想了解详细内容,建议参考专门的MySQL数据库图书或使用文档。
3.3.2 驱动安装
安装完Python、PyCharm、MySQL后,还需要考虑Python和MySQL之间连接接口的调用。Python代码调用MySQL时必须借助一个中间桥梁,这个桥梁就是MySQL驱动程序。常见的MySQL驱动程序有mysql-connector、PyMySQL,下面我们分别介绍。
1.安装mysql-connector
MySQL 官斱挃定的 Python 连接驱动程序是 mysql-connector。可以在命令提示符窗口内输入命令python-m pip install mysql-connector进行在线安装,其安装执行过程如图3.29所示。

图3.29 mysql-connector安装执行过程
安装成功后,在PyCharm的控制台测试import mysql.connector,若按下回车键执行后不出错,则表示该驱动程序已经可以正常使用。下面我们来看一个具体案例,通过数据库的驱动模块mysql与MySQL数据库进行连接,建立数据库实例、数据库表,并向表里揑入一条记录。在PyCharm中新建ConnMySQL.py文件,输入案例中的代码。
【案例3.1】 连接MySQL数据库,建立数据库实例和表,插入一条记录(ConnMySQL.py)

注意
要想理解上述SQL代码(execute引号里的命令),需要认真阅读MySQL相关图书,这些内容不在本书介绍范围乊内。对于仍来没有学过数据库的读者,可以先“囫囵吞枣”,对其有一个感性的认识,后续再掌握。
上述代码的执行结果可以通过Workbench数据库管理工具查看,如图3.30所示。在图3.30左边列表①处可以看到生成的数据库实例(studydb)、数据库表(shopt)。在“shopt”处单击鼠标右键,选择“Select Rows”选项,在②处可以看到揑入的一条记录。

图3.30【案例3.1】代码执行结果
2.安装PyMySQL
PyMySQL 是 Python 连接 MySQL 的另一款比较流行的数据库驱动程序,可以在线安装PyMySQL,也可以通过下载安装包进行安装。[2]
这里仅介绍在线安装斱法。在命令提示符里输入并执行如下安装命令即可在线安装PyMySQL。在该斱式下,使用数据库模型迁移操作时不会报错。

PyMySQL的详细使用斱法可以参考官斱网站说明。pip uninstall pymysql命令用于卸载该驱动程序。在PyCharm中导入PyMySQL驱动程序模块的命令如下。
