iT邦幫忙

0

使用 pymysql 连接到 MySQL 报错

错误内容:

pymysql.err.InternalError: Packet sequence number wrong - got 1 expected 0

这个是怎么回事?

这是我的 python 代码:

import pymysql

DB_Host = "10.10.10.47"
DB_Name = "zabbix"
DB_User = "admin"
DB_Password = "P@ssw0rd@"

print("Connecting to database using MySQLdb...")
db = pymysql.Connect(host=DB_Host, db=DB_Name, user=DB_User, passwd=DB_Password,charset='utf8',)


print("Succesfully Connected to database using MySQLdb!")

db.close()

(今天額度被我用完了,為了縮排只好用兩個全型空白在最底下那兩行的開頭,調用前請拿掉換TAB或空白)
猜是你的用戶並不在允許的IP內 .....
myconn = pymysql.connect("127.0.0.1", "databaseuser",
"password", "database" , cursorclass=pymysql.cursors.DictCursor)
mycursor = myconn.cursor()
mycursor.execute("SELECT * FROM contacts WHERE .....")
data = mycursor.fetchall()
for d in data:
 dno = d['surname'].strip()
 email=d['email'].strip()
as900 iT邦新手 1 級 ‧ 2020-06-12 08:04:16 檢舉
用户在允许的 IP 内,我已经在 MySQL server 创建了一个 admin@% 的用户,并允许访问所有数据库 *。*
create user 'admin'@'%' identified by 'P@ssw0rd@';
grant all privileges on *.* to 'admin'@'%' with grant option;

1 個回答

0
KYCPG
iT邦新手 4 級 ‧ 2020-06-12 17:46:55
import pymysql

print("Connecting to database using MySQLdb...")
db = pymysql.Connect("10.10.10.47", "zabbix", "admin", "P@ssw0rd@",charset='utf8',)
cur = db.cursor()


lst = []
cur.execute('SELECT * from your table here')
print()
print(cur.description, end = '')
for row in cur.fetchall():
    lst = list(row)
    print(row, lst)
cur.close()
db.close()

程式碼簡化了一下下試看看?

as900 iT邦新手 1 級 ‧ 2020-06-16 16:13:13 檢舉

还是不行,不知道是什么问题,我换了一个数据库就是好的,连到我另一台 MySQL 服务器,一切正常,就是这台不行,也没找出什么问题,数据库看起来都正常的,防火墙也关了,而且两台数据库都是 zabbix 的。

我要發表回答

立即登入回答