全部博文(73)
分类: Python/Ruby
2010-09-19 14:21:55
解压:
[root@localhost]# tar xfz MySQL-python-1.2.3c1.tar.gz
[root@localhost]# cd MySQL-python-1.2.3c1 #进入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
2、运行安装 setuptools:
[root@localhost]# python ez_setup.py
3、然后build,install
PS:如果没外网
1、先运行python ez_setup.py,有个一个下载的文件。
如我这个版本:
2、去有公网的机器下载
wget “”
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
另外一种不折腾的方法:直接下载那个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