Невозможно получить доступ к базе данных MySQL на другом ПК с включенной переадресацией портов - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю над проектом, который включает сервер, обращающийся к базе данных.База данных разработана на MySQL (v8.0) и активна на другом ПК.Доступ к базе данных активен через переадресацию портов, но всякий раз, когда к базе данных обращаются с моего компьютера, появляется следующая ошибка:

«Плагин аутентификации {0}» не поддерживается ».format(plugin_name)) mysql.connector.errors.NotSupportedError: Плагин аутентификации 'caching_sha2_password' не поддерживается

Я попытался переустановить соединитель Python mysql и проверил все версии на одно и то же, но все они выписаны(Я даже сделал другую виртуальную машину, чтобы проверить то же самое!).

Пожалуйста, помогите с этим.Любой вклад будет приветствоваться !!

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Спасибо за ввод.Оказывается, что проблема вызвана неправильной установкой программного обеспечения.При установке пакета deb с веб-сайта mysql при установке, вероятно, отсутствуют некоторые ключевые компоненты, из-за которых он не может выполнить код.

Я попытался выполнить следующую команду на терминале

pip install mysql-connector-python

После этого проблема исчезла.

0 голосов
/ 28 ноября 2018

Попробуйте использовать telnet, чтобы открыть соединение с портом, на котором работает ваша база данных.Например,

phill@kore:~$ telnet localhost 3306
Trying ::1...
Connected to localhost.localdomain.
Escape character is '^]'.
J
5.7.22q8TpMY /fT[zVmysql_native_password Connection closed by foreign host.
phill@kore:~$

В этом случае служба mysql ожидает использовать mysql_native_password Возможно, этот вопрос может помочь:

Плагин аутентификации 'caching_sha2_password' не поддерживается

Вы используете mysql_native_password, который больше не используется по умолчанию.Предполагая, что вы используете правильный соединитель для своей версии, вам нужно указать аргумент auth_plugin при создании экземпляра вашего объекта подключения

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1', database='test',
                              auth_plugin='mysql_native_password')

Также предлагается попробовать что-то вроде этого:

mysql> select Host,User,plugin from mysql.user;
+-----------+---------------+-----------------------+
| Host      | User          | plugin                |
+-----------+---------------+-----------------------+
| localhost | root          | mysql_native_password |
| localhost | mysql.session | mysql_native_password |
| localhost | mysql.sys     | mysql_native_password |
...