Я пытаюсь вызвать mysql.rds_set_configuration хранимую процедуру RDS из клиента Python, однако я получаю сообщение об ошибке ERROR
import mysql.connector
from mysql.connector import Error
connection = mysql.connector.connect(
user = app_conf.rds_user,
password = app_conf.rds_password,
host = master_db
)
cursor = connection.cursor()
cursor.callproc**('mysql.rds_set_configuration', ['binlog retention hours', 12 ])**
for result in cursor.stored_results():
print(result.fetchall())
except mysql.connector.Error as error:
print("Failed to execute stored procedure: {}".format(error))
finally:
if (connection.is_connected()):
cursor.close()
connection.close()
print("MySQL connection is closed")
, она завершается с
Failed to execute stored procedure: 1694 (HY000): Cannot modify @@session.sql_log_bin inside a transaction
MySQL connection is closed
Если явойдите в RDS и выполните эту хранимую процедуру, проблем нет.
Я также пытался использовать библиотеку python pymysql, однако та же проблема.
mysql версия
mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+-----------------------+
| Variable_name | Value |
+-------------------------+-----------------------+
| innodb_version | 5.7.26 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1,TLSv1.2 |
| version | 5.7.26-log |
| version_comment | Source distribution |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+-----------------------+
8 rows in set (0.06 sec)
Пожалуйста, предложите !!!