解决can't connect to MySQL server on 'localhost'(10061)问题

  今天,用Python连接MySQL数据库时出现can’t connect to MySQL server on ‘localhost’(10061)问题,如图(1)所示:

解决can't connect to MySQL server on 'localhost'(10061)问题_第1张图片 图(1) error:10061 无法连接数据库
  但是,右击桌面右下角【开始】—》mySQL —》输入对应的密码和用户名,查询数据库xingqu里demo表却可以执行,如图(2)所示:
解决can't connect to MySQL server on 'localhost'(10061)问题_第2张图片 图(2) mySQL控制台里,却可以连接数据库
  这说明c:\windows\system32\drivers\etc目录里,文件hosts里的localhost属性没有配置,添加如下代码即可:

127.0.0.1 localhost

解决can't connect to MySQL server on 'localhost'(10061)问题_第3张图片 图(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

解决can't connect to MySQL server on 'localhost'(10061)问题_第4张图片 图(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])

  效果如下:

解决can't connect to MySQL server on 'localhost'(10061)问题_第5张图片 图(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])

你可能感兴趣的:(mysql,数据库,python,10061)