2015-02-04 87 views
0

此鏈接包含顯示我在mysql工作臺中創建的數據庫以及我在代碼中建立的連接,但由於某種原因數據庫未知。我錯過了一個步驟嗎? http://gyazo.com/d995c4da99043da43bfbd057a0a839c7未知數據庫錯誤python mysql

__author__ = 'avi' 

from TwitterSearch import * 
import json 

twtsearch = TwitterSearch(
    consumer_key='PXTUrlRfgC1zSTsAPU9z6EHtD', 
    consumer_secret='qM9F4FVj1qLFc6f795r96DQPNAJO8hkbWy4PXWYLfQcYyNGY7D', 
    access_token='2943116292-wVHEjbfjX7OFqaOURBqim5o7Vs6lZyjxsoto8nD', 
    access_token_secret='CJAppSRY9TZ5cwYTABZhH2YTd0rm5IzBDqPder6v4qLBA' 
    ) 

twtsearchorder = TwitterSearchOrder() 
twtsearchorder.set_keywords(['iphone6']) 
twtsearchorder.set_language('en') 
twtsearchorder.set_include_entities(True) 


tweet_limit=50 
parsed_tweets= {} 
table="twtinfo" 
import MySQLdb as mdb 

con = mdb.connect('localhost', 'root','root','tweetinfo') 
cur=con.cursor() 

for tweet in twtsearch.search_tweets_iterable(twtsearchorder): 
    if tweet_limit > 0 : 
     parsed_tweets['name'] = tweet['user']['screen_name'] 
     parsed_tweets['content'] = tweet['text'] 
     parsed_tweets['user_id'] = tweet['user']['id'] 
     parsed_tweets['fav_count'] = tweet['favorite_count'] 
     parsed_tweets['location'] = tweet['user']['location'] 
     parsed_tweets['retweet_count'] = tweet['retweet_count'] 
     placeholders= ', '.join(['%s'] *len(parsed_tweets)) 
     columns = ', '.join(parsed_tweets.keys()) 
     sql="INSERT into %s (%s) VALUES (%s)" % (table, columns, placeholders) 
     cur.execute(sql,parsed_tweets.values()) 
     tweet_limit -= 1 
+0

鏈接似乎顯示在gyazo一個破損的文件。 – Emanuel

+0

似乎對我很好http://gyazo.com/d995c4da99043da43bfbd057a0a839c7 – user3204064

+0

要調試這樣的事情,從數據庫連接開始。確保您可以正確連接到數據庫並關閉連接。從快速瀏覽,它看起來像您的連接字符串可能沒有正確指定。一旦你知道你可以連接,嘗試一些簡單的東西,比如單列上的SELECT。 – Jesuisme

回答

0

MySQL進程抱怨你試圖訪問數據庫,即tweetinfo是不存在的。 MySQL錯誤1049通常是不必忘記選擇一個數據庫的指示,但你沒有作爲第四參數mdb.connect()

可能的錯誤可能是:

  • 您已經運行幾個MySQL的過程中,與一個正確的數據庫不在默認的MySQL端口上。
  • 不知何故,你的數據庫GUI應用程序還沒有實際提交你的數據庫和表到MySQL進程。
  • MySQL沒有運行?你可能會得到一個不同的錯誤信息,但它可能是一個想法,以確保它以防萬一。

只是爲了檢查,如果你的表是否存在,你的數據庫是在地方,打開一個終端,寫了下面的命令:

mysql -u root -proot 
use tweetinfo; 
show create table twtinfo; 

另一件事嘗試可能會問MySQL進程哪些它認爲你正在使用的數據庫。嘗試添加如下代碼到您的代碼:

cur.execute("SELECT DATABASE() FROM DUAL;") 
print("Database is: %s.", cur.fetchone()[0]) 

我不是一個蟒蛇程序員,所以我不完全有信心,將無需一些調整工作。

如果這些都不能給你帶來好的結果,我不太確定有什麼問題。

+0

它說mysql不是終端上的公認命令。我是否必須從特定目錄鍵入它? – user3204064

+0

看來mysql.exe不在PATH環境變量中列出的文件夾中。重新啓動GUI並確保所有東西仍然存在將會有另一種方式,或者尋找某種類似提交或保存按鈕,看起來很特殊。 – Emanuel

+0

您的GUI應用程序可能有一個窗口,您可以在其中手動編寫命令並執行它們。這將是輸入'use tweetinfo;'和'show create table twtinfo;'的好地方。它可能會被命名爲「MySQL查詢窗口」或類似的東西。 – Emanuel