一:起因
(1)Linux下安装Python的第三方模块 ---- MySQLdb,自己走了很多弯路,在此做一下总结,希望对于像我一样的初学者有所帮助
(2)Python中MySQL数据库连接的例子,请见Linux公社 或者 我的个人github源代码
(3)MySQL-python 1.2.5的下载地址,同样也是pipe python的资源网站
二:MySQLdb在Linux环境中的安装
(1)Linux 下的安装mysql数据库,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,安装命令:
>>mysql -u root -p 即可检验mysql服务和客户端是否安装和开启
(2)MySQL-python驱动模块安装
下载地址:https://pypi.python.org/pypi/MySQL-python/
下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:
>>python setup.py install ----- 报错误
(3-1)Python安装模块出错(ImportError: No module named setuptools)解决方法
安装请看 http://blog.csdn.NET/ab198604/article/details/8681851 或者 更加科学的方法
(3-2)提示报错信息:mysql_config not found
这个是因为缺少libmysqld_dev, libmysqlclient_dev 两个开发包引起的
下载缺少的开发包,运行两个命令:(如果未找到包,请详细查看更改163源)
sudo apt-get insatll libmysqld-dev
sudo apt-get install libmysqlclient-dev
(4)修改源代码目录下的setup_posix.py文件,将mysql_config.path 修改为mysql_config.path="/usr/bin/mysql_config"
再次在源代码目录中运行python setup.py build
系统再次提示报错信息: error: command 'gcc' failed with exit status 1
需安装两个资源文件 :
(5)再次会到源文件目录执行
至此,mysql的模块安装完成!
(6)检查MySQLdb 模块是否可以正常导入
>>> import MySQLdb
(7)示例
示例解释:
三:linux操作数据库命令
(1)创建数据库
命令:create database <数据库名>
(2)创建数据库并分配用户
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON
数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';
(3)基本操作小结
(4)linux操作系统上面开发程序, 只有了gcc 是不行的,还需要一个 build-essential软件包
作用是提供编译程序必须软件包的列表信息,也就是说 编译程序有了这个软件包,它才知道 头文件在哪 才知道库函数在哪,还会下载依赖的软件包 最后才组成一个开发环境
软件包: build-essential 安装方法:sudo apt-get install build-essential
(5)linux发行版通常会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el)包。以python为例, 以下情况你是需要python-dev的
当需要自己安装一个源外的python类库, 而这个类库内含需要编译的调用python api的c/c++文件,这时需要写的一个程序编译需要链接libpythonXX.(a|so);其他正常使用python或者通过安装源内的python类库的不需要python-dev。
libmysqlclient-dev 是MySQL database development files;ubuntu 上 mysql-devel 库的名字叫 libmysqld-dev,安装方法:sudo apt-get install libmysqld-dev
(6)Linux查看mysql 安装路径
1)查看文件安装路径
由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址)。
这里以mysql为例。比如说我安装了mysql,但是不知道文件都安装在哪些地方、放在哪些文件夹里,可以用下面的命令查看所有的文件路径
在终端输入:whereis mysql,回车,如果你安装好了mysql,就会显示文件安装的地址
2)查询运行文件所在路径(文件夹地址)
如果你只要查询文件的运行文件所在地址,直接用下面的命令就可以了(还是以mysql为例):