0

我正在学习 python ,我正在尝试连接到数据库:

  1. 操作系统 Ubuntu 13.04
  2. 我已经运行了 apache 和 localhost
  3. 我正在使用 eclipse pydev
  4. 我已经安装了从这里下载的 mysql 连接器:http: //dev.mysql.com/downloads/connector/python/(一个 .deb 文件)
  5. 我已经安装了 sudo apt-get install python-mysqldb
  6. 项目清单

这是我的代码(简单)(带有适当的缩进):

#!/usr/bin/python
import MySQLdb

try:
    db = MySQLdb.connect(host="localhost", # your host, usually localhost
                         user="root", # your username
                         passwd="root", # your password
                         db="Ayuda") # name of the data base
except Exception as a:
    print a

cur = db.cursor() 
cur.execute("SELECT * FROM YOUR_TABLE_NAME")

for row in cur.fetchall() :
    print row[0]

所以我得到这个错误:

(2002,“无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器”)

我该如何解决这个问题?

4

1 回答 1

0

我已经解决了:我使用了另一个取自 mysql 使用示例的代码:http: //dev.mysql.com/doc/connector-python/en/myconnpy_example_connecting.html

这是我现在的代码:

import mysql.connector

from mysql.connector import errorcode

try:
    cnx = mysql.connector.connect(host="localhost",
                         user="root",
                         passwd="root",
                         db="Ayuda")

except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print("Something is wrong with your user name or password")

    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print("Database does not exists")

    else:
        print(err)
else:

    cur = cnx.cursor()
    cur.execute("SELECT * FROM mitabla")

    for row in cur.fetchall() :
        print row[1]

    cnx.close()

我仍然不知道为什么我可以'以另一种方式连接。

于 2013-08-11T03:41:56.107 回答