Ubuntu下安装MySQL-python教程

时间:2021-10-26 02:07:24

在用Django时,数据库如果选择MySQL,那么需要安装MySQL-python,以下是简明安装教程:


1. http://sourceforge.net/projects/mysql-python/下载安装包,截至笔者发稿,MySQL-python的版本为:MySQL-python-1.2.4b4.tar.gz。


2. 解压,笔者解压到了~/temp目录下:

$ tar -zxvf MySQL-python-1.2.4b4.tar.gz -C ~/temp/


3. 在终端里面执行以下命令:

$ mysql_config

如果提示未找到命令,则安装终端提示你的包,如下:

Ubuntu下安装MySQL-python教程

则安装:

$ sudo apt-get install libmysqlclient-dev


4. 我们打开MySQL-python-1.2.4b4目录(步骤2中解压得到的目录)中的site.cfg文件,看到有这样的说明:

Ubuntu下安装MySQL-python教程

意思就是说,如果mysql_config脚本不在PATH中,我们就解注释下面的代码,并修改这行代码后面的路径,以告知mysql_config脚本的位置;如果mysql_config这个脚本在PATH中,就不要改了,否则会出现一些匪夷所思的现象。遵旨!


5. 为了知晓我们到底用不用改site.cfg,再次尝试在终端执行:

$ mysql_config
如果出现以下结果:

Ubuntu下安装MySQL-python教程

则说明mysql_config脚本在PATH中(或者说在MySQL-python过程中我它能找到mysql_config脚本),那么我们就不用修改site.cfg;
如果未出现,则就按着步骤4所述修改site.cfg,可以在终端执行如下命令,来寻找mysql_config这个脚本的路径:

$ find / -name mysql_config
Ubuntu下安装MySQL-python教程

得到mysql_config的路径(应该很快,find命令据推测应该会先在PATH变量中的路径寻找,出来第一条结果后适时终止执行即可),修改site.cfg。


6. 若MySQL是通过apt-get安装的,那么我们还要安装python-dev包,来提供安装过程中必须的Python.h这个头文件:

$ sudo apt-get install python-dev


7. 准备工作终于做完了!现在赶紧去解压得到的文件夹MySQL-python-1.2.4b4下,运行:

$ sudo python setup.py build
$ sudo python setup.py install


8. 测试一下,在python命令行中执行:

import MySQLdb
如果没出现错误,说明我们成功安装了MySQL-python。


附:Django中验证某一项目成功连接MySQL的方法:

样例settings.DATABASES:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'db_name', # Or path to database file if using sqlite3.
'USER': 'your_MySQL_uname', # Not used with sqlite3.
'PASSWORD': 'your_pwd', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
在项目目录通过以下命令启动Python Shell:

$ python manage.py shell
注:以上命令是以 正确配置启动Shell的一种方法。

接着在Shell中输入下列命令测试MySQL连接:

>>>from django.db import connection
>>>c = connection.cursor()

如果没有显示什么错误信息,那么你的数据库配置是正确的。


哇呜~我们顺利安装了MySQL-python,就可以在Django中使用MySQL了!

这篇教程是笔者结合网上现有的教程所写,更侧重于笔者解决问题的思路,供参考。