Я недавно настроил SSL на моем сервере MySQL, и он, кажется, сломал мое приложение на Python.Я могу нормально подключиться к серверу через командную строку:
user@kiosk:~$ mysql -u <user> -p -h <remote host>
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.7.25-0ubuntu0.18.04.2 (Ubuntu)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
И SSL, похоже, работает на соединение:
mysql> \s
--------------
mysql Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using EditLine wrapper
Connection id: 19
Current database:
...
SSL: Cipher in use is DHE-RSA-AES256-SHA
....
Threads: 1 Questions: 17 Slow queries: 0 Opens: 106 Flush tables: 1 Open tables: 99 Queries per second avg: 0.007
Пользователь настроен на требование SSL, и яв настоящее время я не использую CA / client-cert / client-key на моем клиенте для подключения (насколько я понимаю, это необязательно).
Мой скрипт на python использует простое соединение:
db_ip_address = raw_input('Ip Address: ')
db_username = raw_input('Username: ')
db_passwd = raw_input('Password: ')
try:
db = mysql.connector.connect(
host=db_ip_address,
user=db_username,
passwd=db_passwd,
)
cursor = db.cursor()
connected = True
except Exception as e:
installer.fatal('\r\n Failed to connect to SQL server please try again \r\n')
print traceback.format_exception_only(type(e), e)[0]
Который сейчас завершается ошибкой со следующей ошибкой:
ProgrammingError: 1045 (28000): Access denied for user '<user>'@'<IP>' (using password: YES)
Я предполагаю, что это связано с моей конфигурацией SSL, но я не совсем уверен, почему все работает нормально из CLI mysql,но не из моего сценария?
Любое понимание будет с благодарностью.