1. 程式人生 > >解決can't connect to MySQL server on 'localhost'(10061)問題

解決can't connect to MySQL server on 'localhost'(10061)問題

  今天,用Python連線MySQL資料庫時出現can’t connect to MySQL server on ‘localhost’(10061)問題,如圖(1)所示:

這裡寫圖片描述
圖(1) error:10061 無法連線資料庫

  但是,右擊桌面右下角【開始】—》mySQL —》輸入對應的密碼和使用者名稱,查詢資料庫xingqu裡demo表卻可以執行,如圖(2)所示:
這裡寫圖片描述
圖(2) mySQL控制檯裡,卻可以連線資料庫

  這說明c:\windows\system32\drivers\etc目錄裡,檔案hosts裡的localhost屬性沒有配置,新增如下程式碼即可:
127.0.0.1 localhost
這裡寫圖片描述
圖(3) 在host裡配置localhost屬性:127.0.0.1 localhost

  另外,如果你的網路為IPv6,還需要在../MySQL/MySQL Server 5.1 /my.ini裡,[mysqld]欄位下配置bind-address屬性,如下:   
bind-address = 127.0.0.1
這裡寫圖片描述
圖(4)在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])

  效果如下:

這裡寫圖片描述
圖(4)用Python連線MySQL5.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])