2013-10-19 146 views
1

我安裝了Python 2.7以嘗試連接到MySQL在線。基本上,MySQL和phpMyAdmin在服務器上,我可以通過localhost:8888/phpmyadmin通過膩子在我的Windows桌面上訪問它。即使使用膩子,我也無法連接到它。任何想法?我使用CyMySQL面臨與Python 3.3相同的問題。Python連接到mysql

import MySQLdb 

db = MySQLdb.connect(host="127.0.0.1", # your host, usually 127.0.0.1 
        user="megamonster", # your username 
        passwd="", # your password 
        db="extractor") # name of the data base 

# you must create a Cursor object. It will let 
# you execute all the query you need 
cur = db.cursor() 

# Use all the SQL you like 
cur.execute("SELECT * FROM abc") 

# print all the first cell of all the rows 
for row in cur.fetchall() : 
    print row[0] 

錯誤:

Traceback (most recent call last): 
    File "C:\Users\Jonathan\Desktop\testSQL.py", line 6, in <module> 
    db="extractor") # name of the data base 
    File "C:\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect 
    return Connection(*args, **kwargs) 
    File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 187, in __init__ 
    super(Connection, self).__init__(*args, **kwargs2) 
OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' (10061)") 

更新

我添加的端口(3306),並得到這個。 OperationalError:(2013年, 「在 '等待初始通信數據包',系統錯誤而丟失連接到MySQL服務器:0」)

目前看 MySQL error: 2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 0"

嗯着工作還是......

+0

@hcwhsa ???????? – CodeGuru

+0

你可以在機器命令行上連接「mysql -umegamonster extractor」嗎? – joeButler

+0

試試'localhost'而不是ip地址? – kevinsa5

回答

2

我用的sqlplus它的工作

sqlplus User_name/[email protected]_ip:Port/[email protected]$SQLFILENAME 

只需指定SQLFILENAME如果你想利用一個文件。否則,你可以忽略這個參數並且可以直接運行sql語句

+0

歡迎來到Stackoverflow。 – CodeGuru

1

這可能是一些事情,但就MySQL而言,權限是獨立設置的localhost127.0.0.1。確保你可以連接到確切的主機和憑證。 Possibly related

例如,在連接PUTTY連接時檢查此項。

mysql> use mysql; 
Database changed 

mysql> SELECT host,user,select_priv FROM user; 

+-------------------------+------+-------------+ 
| host     | user | select_priv | 
+-------------------------+------+-------------+ 
| localhost    | root | Y   | 
| 127.0.0.1    | root | Y   | 
+-------------------------+------+-------------+ 

另外,請檢查您連接誰的(上膩子),並使用該腳本同一信息:

mysql> SELECT USER(),CURRENT_USER(); 

+----------------+----------------+ 
| USER()   | CURRENT_USER() | 
+----------------+----------------+ 
| [email protected] | [email protected] | 
+----------------+----------------+ 
+0

我查過了,是的,Localhost和127.0.0.1和上面一樣。對於current_user,與上面的結果相同。 – CodeGuru

+0

所以你可以SSH到機器,然後在命令行連接爲'mysql -u root'?我不明白phpmyadmin「通過膩子」參考...沒關係 - 我剛剛看到編輯您的帖子,你有一個新的錯誤! – beroe

+0

是的。感謝您幫助我調試,一直持續數小時。感謝您的幫助>。<仍然努力:x嗯嗯 – CodeGuru