Python 1694(HY000):无法在事务内修改@@session.sql\u log\u bin
我试图从python客户机调用mysql.rds\u set\u配置rds存储过程,但最终出现错误Python 1694(HY000):无法在事务内修改@@session.sql\u log\u bin,python,mysql,rds,Python,Mysql,Rds,我试图从python客户机调用mysql.rds\u set\u配置rds存储过程,但最终出现错误 import mysql.connector from mysql.connector import Error connection = mysql.connector.connect( user = app_conf.rds_user, password = app_conf.rds_password,
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)
请建议
connection = mysql.connector.connect(
user = app_conf.rds_user,
database='mysql',
password = app_conf.rds_password,
host = master_db,
autocommit = True
将autocommit设置为true可帮助我解决此问题