首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1694 (HY000):无法修改事务内的@@session.sql_log_bin

1694 (HY000):无法修改事务内的@@session.sql_log_bin
EN

Stack Overflow用户
提问于 2019-11-04 15:50:27
回答 1查看 791关注 0票数 2

我试图从mysql.rds_set_configuration客户端调用python RDS存储过程,但最终出现了错误。

代码语言:javascript
复制
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")

它失败了,错误为

代码语言:javascript
复制
Failed to execute stored procedure: 1694 (HY000): Cannot modify @@session.sql_log_bin inside a transaction
MySQL connection is closed

如果我登录到RDS并执行此存储过程,则没有任何问题。

我也尝试使用python库pymysql,但是同样的问题。

mysql版本是

代码语言:javascript
复制
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)

敬请推荐!

EN

回答 1

Stack Overflow用户

发布于 2019-11-05 20:32:31

代码语言:javascript
复制
connection = mysql.connector.connect(
             user = app_conf.rds_user,
             database='mysql',
             password = app_conf.rds_password,
             host = master_db,
             autocommit = True

将自动提交设置为true可帮助我解决此问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58689139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档