1

我安装了 Python 2.7 以尝试在线连接到 MySQL。基本上,MySQL 和 phpMyAdmin 在服务器上,我可以通过localhost:8888/phpmyadminWindows 桌面上的 putty 访问它。即使使用腻子,我似乎也无法连接到它。任何想法?我在使用 CyMySQL 的 Python 3.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)")

更新

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

目前正在查看 MySQL 错误:2013,“Lost connection to MySQL server at 'reading initial communication packet', system error: 0”

嗯,还是不行。。。

4

2 回答 2

2

我用 sqlplus 它工作

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

只需指定SQLFILENAME是否要使用文件。否则可以忽略这个参数,直接运行sql语句

于 2015-11-30T17:36:24.613 回答
1

这可能是很多事情,但就 MySQL 而言,权限是独立设置的 forlocalhost和 for 127.0.0.1。确保您可以使用准确的主机和凭据进行连接。可能相关

例如,在与您的 PUTTY 连接连接时检查此项。

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 |
+----------------+----------------+
于 2013-10-19T16:31:54.633 回答