Ошибка подключения на MariaDB при использовании pymysql - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь использовать библиотеку Python Py MySQL 0.9.3 на сервере Debian 10.3 , используя Python 3.7.3 для подключиться к локальному серверу MariaDB 10.4.12.

~# pip3 show PyMySQL
Name: PyMySQL
Version: 0.9.3
Summary: Pure Python MySQL Driver
...
Location: /usr/local/lib/python3.7/dist-packages

~# python3 --version
Python 3.7.3

Для целей тестирования я создал базу данных db1 и пользователя user1 на моем сервере MariaDB 10.4:

CREATE DATABASE db1 DEFAULT CHARSET utf8mb4;
GRANT ALL ON db1.* TO user1@localhost IDENTIFIED BY '1234';

Я подтверждаю, что могу подключиться к db1 с учетными данными, указанными выше:

~# mysql -NB -hlocalhost -uuser1 -p1234 db1 -e "SHOW VARIABLES LIKE 'version'"
version 10.4.12-MariaDB-1:10.4.12+maria~buster-log

Теперь давайте создадим скрипт Python (test.py):

import pymysql.cursors

connection = pymysql.connect(host='localhost',
                             user='user1',
                             password='1234',
                             db='db1',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

=> Запуск этого скрипта приводит к ошибке:

~# python3 test.py 
Traceback (most recent call last):
  File "test.py", line 15, in <module>
    cursorclass=pymysql.cursors.DictCursor)
  File "/usr/local/lib/python3.7/dist-packages/pymysql/__init__.py", line 94, in Connect
    return Connection(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/pymysql/connections.py", line 325, in __init__
    self.connect()
  File "/usr/local/lib/python3.7/dist-packages/pymysql/connections.py", line 598, in connect
    self._get_server_information()
  File "/usr/local/lib/python3.7/dist-packages/pymysql/connections.py", line 975, in _get_server_information
    packet = self._read_packet()
  File "/usr/local/lib/python3.7/dist-packages/pymysql/connections.py", line 671, in _read_packet
    % (packet_number, self._next_seq_id))
pymysql.err.InternalError: Packet sequence number wrong - got 1 expected 0

Что не так с моей настройкой? Я пропустил какую-то библиотеку или около того? Или Py MySQL несовместим с MariaDB 10.4?

...