最近学习python,本人使用的是ubuntu,虽说linux环境下,安装方式差不多,但是还是存在一些差别的,例如一些默认安装程序,它的路径就存在差别,这会影起一些连锁反应,如果安装一些逻辑相关的软件的时候,就会报错,所以如果查询相关资料,楼主还是建议对症下药。当然如果有能力的话,楼主还是建议使用编译安装的方式,这样容易了解软件的一些机制。
在终端中输入:
1. sudo apt-get install mysql-server。
装完已经自动配置好环境变量,可以直接使用mysql的命令。
注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多。
2.sudo apt-get install MySQL-python
安装完成之后可以在Python解释器中测试一下
输入
import MySQLdb #注意大小写
如果不报错,就证明安装成功了。
可能遇到问题:
>>> import MySQLdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "MySQLdb/__init__.py", line 23, in <module>
(version_info, _mysql.version_info))
ImportError: this is MySQLdb version (1, 2, 4, 'beta', 4), but _mysql is version (1, 2, 3, 'final', 0)
原因:之前使用编译的方法进行安装,下的是1.2.4b4,但是用yum目前最高1.2.3,冲突
解决方法:删除已经编译的文件
rm -rf MySQL-python-1.2.4b4/
再进行
>>> import MySQLdb
无错误,则表示成功了
下面实例测试:
from MySQLdb import *
def conn():
cn=Connection('127.0.0.1','root','','test')
#Connection()函数的参数依次为
# host(string, host to connect);
# user(string, user to connect as);
# passwd(string, password to use);
# db(string, database to use)
#也可以这样选择数据库
#cn.select_db('test')
cur=cn.cursor()
cur.execute('select * from user')
#设置游标的位置,不设置默认为0
#cur.scroll(0)
row=cur.fetchone()
#查询游标位置的一条记录,返回值为元组
print row[0] #输出第一个字段内容
print row[1]
if __name__=='__main__':
conn()
4。查询时也可执行fetchall(),返回所有记录为一个元组(tuple),元组的每个元素为每行记录;还有fetchmany(size)
5。增删改的例子
insert:
cur.execute('insert into user (name,passwd) values('sparezgw','asdfasdf')')
cur.insert_id()
cur.insert_id()
update:
cur.execute('update user set passwd='asdfasdf' where name='sparezgw'')
delete:
cur.execute('delete from user where id=2')
参考链接:http://blog.csdn.net/wklken/article/details/7271019
http://blog.csdn.net/samxx8/article/details/6285013