Python连接到mysql

Python连接到mysql,python,mysql,Python,Mysql,我安装Python2.7是为了尝试在线连接MySQL。基本上,MySQL和phpMyAdmin位于服务器上,我可以通过windows桌面上的putty通过localhost:8888/phpMyAdmin访问它。即使涂上油灰,我似乎也无法连接到它。有什么想法吗?使用CyMySQL的Python3.3也面临同样的问题 import MySQLdb db = MySQLdb.connect(host="127.0.0.1", # your host, usually 127.0.0.1

我安装Python2.7是为了尝试在线连接MySQL。基本上,MySQL和phpMyAdmin位于服务器上,我可以通过windows桌面上的putty通过
localhost:8888/phpMyAdmin
访问它。即使涂上油灰,我似乎也无法连接到它。有什么想法吗?使用CyMySQL的Python3.3也面临同样的问题

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)")
回溯(最近一次呼叫最后一次):
文件“C:\Users\Jonathan\Desktop\testSQL.py”,第6行,在
db=“提取器”)#数据库的名称
文件“C:\Python27\lib\site packages\MySQLdb\\uuuu init\uuuuu.py”,第81行,在Connect中
返回连接(*args,**kwargs)
文件“C:\Python27\lib\site packages\MySQLdb\connections.py”,第187行,在\uuu init中__
超级(连接,自).\uuuu初始化(*args,**kwargs2)
操作错误:(2003,“无法连接到'127.0.0.1'(10061)”上的MySQL服务器)
更新

我添加了端口(3306),得到了这个。 操作错误:(2013,“在“等待初始通信数据包”时与MySQL服务器的连接中断,系统错误:0”)

目前正在考虑


Hmm仍然不能工作…

可能有很多事情,但就MySQL而言,权限是为
localhost
127.0.0.1
单独设置的。确保您可以连接到确切的主机和凭据

例如,在与油灰连接时检查此项

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           |
+-------------------------+------+-------------+
还要检查您的连接身份(在PUTTY上),并在脚本中使用相同的信息:

mysql> SELECT USER(),CURRENT_USER();

+----------------+----------------+
| USER()         | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+

我用了sqlplus,它工作了

sqlplus User_name/password@Host_ip:Port/Service_Name@$SQLFILENAME

如果要使用文件,只需指定
SQLFILENAME
。否则,您可以忽略此参数并直接运行sql语句

您可以在machines命令行上连接“mysql-umegamonster extractor”吗?请尝试
localhost
而不是ip地址?@kevinsa5已经尝试过了。我正在考虑restful或一些api之类的东西,嗯,你有什么建议?@joeButler我从putty/browser(phpmyadmin)连接mysql没有问题。我想你忘记了
port
变量。我检查了,是的,Localhost和127.0.0.1与上面相同。对于当前的_用户,与上面的结果相同。因此,您可以通过ssh连接到机器,然后在命令行中连接为
mysql-u root
?我不明白phpmyadmin“通过油灰”的参考。。。没关系,我刚看到你的帖子有一个新的错误!对谢谢你帮我调试这个,我已经忙了好几个小时了。感谢您的帮助><仍在努力:x HmmmI我不明白为什么我可以通过putty和浏览器与mysql对话,为什么我不能在python上这么做:\n我太绝望了,如果这不能工作,你会建议其他什么吗?例如restful/api的东西?不管怎样,我对这些都是新手:\n欢迎来到Stackoverflow。