通过Python访问XAMPP里面的MySQL数…

来源:互联网 发布:淘宝手机端优惠券链接 编辑:程序博客网 时间:2024/06/17 00:24

最近想在Python里面调试以下MySQL,想快速地搭建起MySQL+PHP的环境,于是用到了XAMPP,下面是使用中遇到的一些问题.

操作系统为 Ubuntu 11.04 XAMPP 使用官网提供的 1.7.7 python 使用系统自带的 2.7.1

ptyhon需要通过MySQLdb来操作MySQL数据库, 系统自带的ptyhon并没有安装mysqldb,所以要自己安装.ubuntu 系统源中已有MySQLdb,所以直接从源中安装

sudo apt-get install mysqldb
如果使用的系统没有包管理,则要自己下载MySQLdb的源码来编译,地址为[1]

而XAMPP 则可以直接下载使用,地址为[2]

建议解压压缩包到/opt这一个目录,因为XAMPP的默认配置文件指向的是这个目录,使用其他目录在启动时可能会遇到问题.

启动XAMPP

sudo /opt/lampp/lampp

启动后用浏览器登录http://localhost,发现里面的链接都无法点击,看xammp启动的信息,发现MySQL没有正确启动.(第四行)

Starting XAMPP for Linux 1.7.4...XAMPP: Starting Apache with SSL (and PHP5)...XAMPP: Starting MySQL...XAMPP: Couldn't start MySQL!XAMPP: Starting ProFTPD...XAMPP for Linux started.
原来我的xampp目录一开始不是解压在/opt是我后来复制过去的,权限没有设置好,如果一开始就解压到/opt就不会有这个问题可以用以下命令来修复权, 参考自这里[3]
sudo chown -R nobody:root /opt/lampp

在python里面连接数据库, 在执行import MySQLdb时,出现错误

Traceback (most recent call last):  File "", line 1, in   File "MySQLdb/init.py", line 23, in     (version_info, _mysql.version_info))ImportError: this is MySQLdb version (1, 2, 3, 'final', 0), but _mysql is version (1, 2, 2, 'final', 0)
意思是MySQLdb的版本不匹配,我是直接从源安装的,版本是1.2.3 , 这个问题可能因人而异 于是就卸载掉
sudo apt-get remove mysqldb
从software center里直接安装1.2.2 版本,问题解决.

但是数据库依然连接不上,出现如下问题

Traceback (most recent call last):  File "", line 1, in   File "MySQLdb/init.py", line 74, in Connect    return Connection(args, **kwargs)  File "MySQLdb/connections.py", line 170, in init    super(Connection, self).init(args, **kwargs2)_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

原来是MySQLdb会搜索系统的MySQL,我们用的是是xampp里面的MySQL,所以要指定socket,用以下语句,黑体为添加部分,参考自[4].

db=MySQLdb.connect(user="root",passwd="",db="my_db",unix_socket="/opt/lampp/var/mysql/mysql.sock")

后来在用python对数据库进行操作时,发现对数据做出的改动不起作用,断开再连上数据库库,数据不在了.在xampp自带的phpmyadmin里面也观察不到数据的变动

原来在执行python语句时,其实没有真正的写近数据库里,需要执行commit()命令才能真正写进去,参考自这里[5]

Published February 3, 2012

Filed in Programming and tagged MySQL, Python

原文:http://rythdev.com/blog/2012/02/access-mysql-inside-xampp-using-python/

原创粉丝点击