Не удается сделать удаленное соединение с PyMySQL (неправильный номер pymysql.err.InternalError: Номер пакета)
обновление: Проблема решена, решение опубликовано ниже
Я новичок в процессе создания удаленных подключений к базе данных, но кажется, что это не является очевидным решением для этой ошибки.
pymysql.err.InternalError: Packet sequence number wrong - got 80 expected 0
возникает при попытке сделать следующее соединение pymysql
Я запускаю MacOS 10.12.5, Python 2.7.10 в PyCharm (также пытался с Terminal) и PyMySQL 0.7.11 (также пробовал 0.7.9)
update: также пытался использовать Windows 10, Python 2.7.13 с тем же результатом
База данных размещена на cPanel. Возможно, есть дополнительные настройки для изменения, прежде чем я смогу подключиться. Соединительный пользователь имеет полные привилегии. Мой IP был добавлен в список доступа к хосту.
другие примечания: Как и следовало ожидать, если номер порта или хост-адрес случайно изменен, он немедленно отказывается от соединения. В противном случае требуется около 30 секунд до появления ошибки "пакетной последовательности".
import pymysql.cursors
import pymysql
connection = pymysql.connect(host = hostIPaddress,
port = 2083,
user = username,
passwd = password,
db = dbName,
charset = 'utf8mb4', # also tried 'utf8'
cursorclass=pymysql.cursors.DictCursor)
Ответы
Ответ 1
Пока порт 2083 используется хостом, каждая база данных использует порт 3306 по умолчанию в этом случае.
При тестировании с помощью 3306 доступ был отклонен до тех пор, пока я не добавил отклоненный IP-адрес в список "доступ" хоста в Remote MySQL на cPanel.