Python - 无法连接到数据库

时间:2013-08-11 01:34:44

标签: python mysql

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

  1. OS 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. 列表项
  7. 这是我的代码(简单)(有适当的缩进):

    #!/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,“无法通过套接字连接到本地MySQL服务器   '/var/run/mysqld/mysqld.sock'(2)“)

    我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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()

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