Python 不能连接到MySQL ?

leiline 发布于 2015/05/24 22:52
阅读 3K+
收藏 1

用Python写了一个数据库管理的小程序,但是出现不能连接到MySQL的问题,百度之也未能解决,请问要如何做?

系统:Windows7 64bit

语言:Python 2.7

数据库:Mysql 5.0

错误提示:

OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")


连接数据库的代码

#coding=utf-8
import MySQLdb

conn = MySQLdb.connect(
	host='localhost',
	port=3306,
	user='root',
	passwd='cityfmsd',
	db='test',
	)
cur = conn.cursor()



运行后出现的错误:
Traceback (most recent call last):
  File "C:\Users\LinlinLee\Desktop\pythondb.py", line 9, in <module>
    db='test',
  File "E:\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "E:\Python27\lib\site-packages\MySQLdb\connections.py", line 193, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")


MySQL服务已经正常开启

MySQL commend line client 可以正常的连接到数据库



加载中
0
Feng_Yu
Feng_Yu
把localhost换成127.0.0.1再看看
Feng_Yu
Feng_Yu
回复 @Friankin : 看最下面的回复
leiline
leiline
可以了,哪个文件出问题了嘛?
0
jk409
jk409
你可以尝试下pymysql模块,用法和mysqldb一样的,,,,
安装模块用pip install  pymysql
0
风中之神
风中之神
你确定你监听的是localhost,这个果断应该把你进入的命令行打出来啊
0
风中之神
风中之神
netstat -ano | findstr "3306" 看下
0
focusfree
focusfree
吐槽一句,为什么还用5.0   .....................
0
Feng_Yu
Feng_Yu

引用来自“Feng_Yu”的评论

把localhost换成127.0.0.1再看看

@Friankin 能想到的几种情况。进入mysql命令行,SELECT user,password,host FROM mysql.user;看看结果。我的猜测是password有值的是host='127.0.0.1'的这一条,而不是localhost。mysql有一个skip_name_resolve参数,用于跳过DNS解析的。 SHOW GLOBAL VARIABLES LIKE 'skip_name_resolve'; 再看看结果。怀疑这个 可能是ON,所以localhost不会解析为127.0.0.1。skip_name_resolve这个参数是mysql跳过域名解析,如果你使用localhose, www.domain.com这一类的域名连接mysql的话,mysql不会将这些域名解析为对应ip,连接速度能快一些。但是同样localhost也不会解析为127.0.0.1。如果你之前给root赋权限的时候使用root@127.0.0.1连接数据库的话,那么给的密码最终会对应到host='127.0.0.1'这一条记录,host='localhost'这一条记录的密码是空的。

leiline
leiline
谢谢。。
0
AaronInxus
AaronInxus
Python没有安装MySQLdb内置模块
leiline
leiline
回复 @AaronInxus : 把localhost改为127.0.0.1就可以了
AaronInxus
AaronInxus
回复 @Friankin : 数据库没有权限吧。
leiline
leiline
安装了,是localhost 错误的原因
返回顶部
顶部