使用mysql_使用MySQL
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_使用MySQL相关推荐
- binlog流程 mysql_小米 MySQL 数据实时同步到大数据数仓的架构与实践
背景MySQL由于自身简单.高效.可靠的特点,成为小米内部使用最广泛的数据库,但是当数据量达到千万/亿级别的时候,MySQL的相关操作会变的非常迟缓:如果这时还有实时BI展示的需求,对于mysql来说 ...
- 英文首字母排序mysql_利用MySQL数据库来处理中英文取首字母排序
[package com.syz;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import ja ...
- 易语言组合框连接mysql_用mysql填充的多动态组合框
数据库 $mySql = "SELECT field FROM fields"; $result = mysql_query($mySql);HTML: while($r = my ...
- unknown error mysql_解决MySQL执行SQL文件时报Error: Unknown storage engine 'InnoDB'的错误
我运行了一个innoDB类型的sql文件,报了Error: Unknown storage engine 'InnoDB'错误,网上查了很多方法,但是都没办法真正解决我的问题,后来解决了,在这里总结一 ...
- proto文件导入mysql_导出mysql表结构生成grpc需要的proto文件工具
使用过grpc的同学都知道,写proto文件比较繁琐,尤其是写message,对应很多字段,为此写了一个简单的从mysql直接读取表结构,生成proto文件的工具. 工具的使用很简单,需要简单的配置, ...
- mysqluc安装MYSQL_安装mysql几种方法
一.在线安装(推荐) 1.配置仓库 [root@localhost ~]# vim /etc/yum.repos.d/mysql.repo 1 2.安装指定版本(提前配置好网络源) [root@loc ...
- cs6 数据库mysql_能mysql内容
PHP同时操作多个MySQL连接 <?php $con_1 = mysql_connect('localhost','root','')or die("<font color=r ...
- 美团技术 mysql_美团MySQL数据库巡检系统的设计与应用
巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患.我们生活中也随处可见各种巡检,比如电力巡检.消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作.生活.巡检 ...
- checkpoint技术mysql_认识MySQL中的Checkpoint技术
1,checkpoint产生的背景 数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操作的效率,buffer pool中修改之后的数据,并没有立即写入到磁盘,这有可 ...
最新文章
- 对比.Net PetShop和Duwamish来探讨Ado.Net的数据库编程模式
- 网警信息安全!_只愿与一人十指紧扣_新浪博客
- C++数组参数应用方式探讨(转)
- docker 打包_Springboot2.0学习11 使用maven插件打包docker部署应用
- Hadoop框架:MapReduce基本原理和入门案例
- 演示:外部全局地址与外部局部地址的使用案例
- Windows平台JDK安装
- HEVC---xCompressCU()函数作用及位置
- 电视盒子线刷固件教程B860AV2.1-A-M-T版
- [css]画圆形标签
- 【产品经理】产品经理进阶之路(六):互联网思维详解
- CPAN | 配置阿里源
- 【修理】电脑维修 显卡错误(错误代码:43)
- java排他_排他文件锁实现(Java版本)
- 计算机网络——网络时延
- 安卓开发-最简单快速的仿微信聊天实现-附赠微信原生表情,QQ原生表情
- 新年快乐|202112-月度总结
- 2021-09-19OSPF接口网络类型实验
- 微信支持手机温度监控;苹果、谷歌和微软扩大对无密码登录的支持;可在浏览器中运行Python应用的框架发布 | EA周报...
- VCS®/VCSi™User Guide
热门文章
- 揭示生命的奥秘——生物信息学
- NAR:浙大陈云/马忠华团队揭示病原真菌组蛋白H3K27甲基化识别新机制
- Microbiome:浙大马忠华团队-生防细菌抑制病原真菌新机制
- MPB:甘肃省科学院祝英等-药用植物地下茎内生真菌的分离纯化及鉴定
- 研究生新生进入实验室后,如何成长?5点建议分享
- CEJ:西安理工赵亚乾组冠状病毒在水中传播特征、可能遏制策略与研究挑战
- mSystems:从铁载体窥根际菌群互作大局,可见一斑!
- SBB:石油污染土壤微生物群落构建与生物多样性研究
- pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)
- Seaborn使用regplot函数可视化散点图并添加回归曲线以及回归线对应的置信区间(Scatter plot with regression line)