解決can't connect to MySQL server on 'localhost'(10061)問題
阿新 • • 發佈:2019-02-12
今天,用Python連線MySQL資料庫時出現can’t connect to MySQL server on ‘localhost’(10061)問題,如圖(1)所示:
但是,右擊桌面右下角【開始】—》mySQL —》輸入對應的密碼和使用者名稱,查詢資料庫xingqu裡demo表卻可以執行,如圖(2)所示:
這說明c:\windows\system32\drivers\etc目錄裡,檔案hosts裡的localhost屬性沒有配置,新增如下程式碼即可:
127.0.0.1 localhost
另外,如果你的網路為IPv6,還需要在../MySQL/MySQL Server 5.1 /my.ini裡,[mysqld]欄位下配置bind-address屬性,如下:
bind-address = 127.0.0.1
Python連線MySQL5.1的測試程式碼:
//linkDB.py
import MySQLdb
try:
conn=MySQLdb.connect (host='localhost',user='root',passwd='123456',
db='xingqu',port=3306)
cur=conn.cursor()
cur.execute('select * from demo')
datas = cur.fetchall()
for data in datas:
print data[:]
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error %d : %s" % (e.args[0], e.args[1])
效果如下:
請根據自己MySQL的名稱、密碼、字符集、表格名進行修改。如果你MySQL的字符集為gb2312,則chartset=’gb2312’,程式碼為:
import MySQLdb
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',
db='xingqu',port=3306,charset='gb2312')
cur=conn.cursor()
cur.execute('select * from demo')
datas = cur.fetchall()
for data in datas:
print data[:]
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
有時候,需要關閉防火牆和顯示地指明本機地址:127.0.0.1,程式碼如下:
import MySQLdb
try:
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',
db='xingqu',port=3306,charset='gb2312')
cur=conn.cursor()
cur.execute('select * from demo')
datas = cur.fetchall()
for data in datas:
print data[:]
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])