Linux下安装pymysql步骤

一、windows环境里安装
下载地址: https://code.google.com/p/pymysql/
windows环境里,选择一个版本下载后,解压后cmd 切换到目录下,python setup.py install 进行安装;

二、Linux下的安装

下载解压:

[root@localhost]# wget http://ncu.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz" target="_blank"
[root@localhost]# tar xfz MySQL-python-1.2.3.tar.gz
[root@localhost]# cd MySQL-python-1.2.3 #进入MySQL-python目录,查看site.cfg文件的mysql-config配置,如果与实际不符合,请自行修改

[root@localhost]# python setup.py build #注意啦,这一步是一定要做的,不然就安装不成功。

[root@localhost]# python setup.py install #正式安装

然后进入:
$python
>>>import MySQLdb
搞定
一切正常,好啦.


三、常见问题

问题1:
[root@localhost]# python setup.py build
Traceback (most recent call last):
File “setup.py”, line 5, in 
from setuptools import setup, Extension
ImportError: No module named setuptools

1、下载一个文件
[root@localhost]# wget http://peak.telecommunity.com/dist/ez_setup.py
2、运行安装 setuptools:
[root@localhost]# python ez_setup.py
3、然后build,install

PS:如果没外网
1、先运行python ez_setup.py,有个一个下载的文件。
如我这个版本:http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg
2、去有公网的机器下载
wget “http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg”
3、然后传到与ez_setup.py同一目录下,然后运行
[root@localhost]# python ez_setup.py

问题2:

当我在MySQLdb的源码路径build及install完,并导入模块时,发生警告:
>>> import MySQLdb
/usr/local/lib/python2.5/site-packages/MySQL_python-1.2.3c1-py2.5-linux-x86_64.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/local/lib/python2.5/site-packages/MySQL_python-1.2.3c1-py2.5-linux-x86_64.egg/_mysql.pyc, but /root/MySQL-python-1.2.3c1 is being added to sys.path
import sys, pkg_resources, imp

原因是,install后MySQLdb模块已经被放到python的site-pachages目录中;但我在当前目录也存在相同的模块,所以可能会重复导入。只要切换到其他目录运行就可以了。

问题3:

Traceback (most recent call last):
  File "setup.py", line 15, in
    metadata, options = get_config()
  File "D:\Jeffrey\Development\Software\MySQL-python-1.2.3\setup_windows.py", li
ne 7, in get_config
    serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_ke
y'])
WindowsError: [Error 2]

这一步又是google了半天,历经千辛万苦,找到下面的解决方案:

首先在setup_windows.py里看到:

    serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])
    mysql_root, dummy = _winreg.QueryValueEx(serverKey,'Location')

就是在注册表找不到registry_key,这是在site.cfg里定义的:

registry_key = SOFTWARE\MySQL AB\MySQL Server 5.0,按这篇文章修改了一下site.cfg成:

registry_key = SOFTWARE\MySQL AB\MySQL Server 5.5

另外一种不折腾的方法:
在google上找: "download compiled python 2.6 mysql for windows"

      直接下载那个MySQL-python-1.2.3.win32-py2.6.exe文件安装吧,简单的解决花了一晚上的时间的问题吧!

==============================================================================

问题:在输入中文时,报告1406 Data too long for column ... 或Data truncated for column 错误

解决:根据网上有人说的,mysql默认编码、请求的页面编码和sql请求编码都要以utf8,根据自己配置的经验,按照下面方式配置成功:

1、mysql安装时,要选编码utf8,如手工配置,在my.ini中如下:
    default-character-set=utf8

    说明:也可以在创建数据库时指定数据库的默认字符集

           CREATE DATABASE IF NOT EXISTS blog default charset utf8 COLLATE utf8_general_ci;

2、django中models.py文件要保存为utf8格式,如编辑器没默认设定为按此格式保存,可以通过声明方式,在第一行加入下面声明
     #coding=utf-8

3、我的settings.py语言设置,不过我认为这只是指定默认的界面呈现语言,若只为使数据库输入支持中文,应该不用设置:
    LANGUAGE_CODE = 'zh-cn'

===========================================================================

在windows下停止和启动mysql:

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin -u root -p shutdown

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin -u root -p start

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqld-nt --console

你可能感兴趣的:(python,django)