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_使用MySQL相关推荐

  1. websecurity连接mysql_将MySQL连接器JAR放在我的WAR的WEB-INF / lib而不是tomcat lib中,使j_security_check失败...

    我想让我的webapp使用web-inf / lib中的MySQL连接器JAR.但是当我这样做时,j-security_check不能工作.当我把jar放在tomcat lib文件夹中时,它工作正常. ...

  2. go语言代码连接mysql_【mysql】golang连接mysql操作示例增删改查

    golang本身没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动.这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/ ...

  3. 测试远程连接mysql_让MYSQL服务支持远程连接(允许mysql远程登录)测试可行

    一般来说远程连接MYSQL数据库,除非两台服务器在同个机房的局域网内,不然访问速度肯定很慢,性价比不高,除非为了远程维护方便,不然一般不会有人这么设置,这里简单谈谈如何在WIN系统下设置MYSQL的远 ...

  4. 易语言组合框连接mysql_用mysql填充的多动态组合框

    数据库 $mySql = "SELECT field FROM fields"; $result = mysql_query($mySql);HTML: while($r = my ...

  5. font连接MySQL_开始MySql

    1.下载: (1)mysql-4.1.7-win-noinstall.zip  解压后就可用,约36M http://www.mysql.com =>米国镜像(似乎比中国的快点) http:// ...

  6. 用python连接数据库_用Python连接MySQL

    MySQL是当下最流行的关系型数据库管理系统之一,在用Python爬取网络数据的过程中也经常需要用到MySQL,Python中pymysql库提供了连接MySQL的接口,为Python连接和操作MyS ...

  7. python链接mysql 判断是否成功_【初学python】使用python连接mysql数据查询结果并显示...

    因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...

  8. python连接MySQL并进行数据查询

    python连接MySQL并进行数据查询 #建立数据库的连接 mydb = mysql.connector.connect(host="0.0.0.0",user="ro ...

  9. mac版python连接mysql_Mac下Python连接MySQL · BlBana’s BlackHouse

    Mac和Windows下安装mysqlclient坑点记录 Python连接MySQL(mysqlclient) Python连接MySQL类库pymysql python3:mysqlclient, ...

最新文章

  1. linux下创建多进程,linux之多进程fork:进程创建
  2. 飞鸽推广的由咪商务微博
  3. xlwings复制sheet_Python操作Excel的Xlwings教程(六)
  4. Layui--代码修饰器layui.code
  5. 前端优化 - 提高 Web 性能的 9 个技巧
  6. android ant下载安装,ANT+ Plugins
  7. mysql 开源监控软件_开源MySQL_Monito 图形可视化监控工具
  8. 使用arecord、aplay 实现录音和播放
  9. Java—计算球体积
  10. 10大改变世界的未来科技
  11. 趋势里的“生意经”,抖音电商服饰行业如何引爆春夏新品?
  12. 通信专业实务(三)——接入网
  13. 自动驾驶汽车:传感器融合与5G互联的益处
  14. 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第
  15. 数据库脏读、事务的四大特性、四大隔离级别、三大范式
  16. LeetCode-108
  17. 下载XXX不安全,SmartScreen筛选器已阻止下载
  18. 四.Windows基础
  19. [编程题]: 过河问题
  20. 什么是BGP线路?BGP线路机房好吗?

热门文章

  1. 双代号网络图节点编号原则_难倒一片的双代号网络图你学会了吗?
  2. java时间随机数_java开发代码工具类(时间戳/随机数/日期等)
  3. 解决E: Package ‘libmysqlclient-dev‘ has no installation candidate报错
  4. linux怎么判断全局符号,Linux下全局符号覆盖有关问题
  5. 获取当地天气_6 点起来看天气预报?正经人谁看天气预报,原来是为了看她
  6. 宝塔修改Nginx服务器类型,宝塔面板nginx更改日志格式的方法
  7. SCUT - 243 - 宝华复习 - 二分 - 桶计数
  8. 【bzoj1911】[Apio2010]特别行动队 斜率优化dp
  9. 如何使用可控硅?(详细教程)
  10. body-content取值的意义