mysql给出了不推荐的警告

时间:2017-10-31 01:27:15

标签: mysql

自从更新mysql以后,我一直收到警告(它的日志被淹没了).It状态,

 1287, "'@@tx_isolation' is deprecated and will be removed in a future release. Please use '@@transaction_isolation' instead"

在mysql下

mysql> show variables like "tx_isolation";
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| tx_isolation  | REPEATABLE-READ |
+---------------+-----------------+
1 row in set (0.00 sec)

我还有警告暗示的新变量..

mysql> show variables like "transaction_isolation";
+-----------------------+-----------------+
| Variable_name         | Value           |
+-----------------------+-----------------+
| transaction_isolation | REPEATABLE-READ |
+-----------------------+-----------------+
1 row in set (0.00 sec

我知道变量w已不再使用。我希望它消失但我对我的疑问持谨慎态度。是删除警告变量的正确过程。如果是这样,怎么样?

同时检查my.cnf,我没有看到任何变量的提及。

4 个答案:

答案 0 :(得分:27)

问题在SQLAlchemy中作为版本1.1.15的一部分得到解决,并在2017-11-03推出。通过将SQLAlchemy升级到1.1.15,警告消失。

$p

答案 1 :(得分:2)

从MySQL 5.7.20开始,您应该转换为使用transaction_isolation。在文档中说明:

  

在MySQL 5.7.20之前,使用tx_isolation而不是   transaction_isolation。

https://dev.mysql.com/doc/refman/5.7/en/set-transaction.html

<强> TX_ISOLATION

Deprecated  5.7.20
System Variable Name    tx_isolation

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_tx_isolation

<强> transaction_isolation

Command-Line Format         --transaction-isolation=name
System Variable (>= 5.7.20) Name    transaction_isolation

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_transaction_isolation

编辑:

不要依赖旧变量,而是开始使用新变量,如文档中提供的示例

SELECT @@GLOBAL.transaction_isolation, @@transaction_isolation; 
SET GLOBAL transaction_isolation='REPEATABLE-READ'; 
SET SESSION transaction_isolation='SERIALIZABLE';

您必须搜索代码以确定已弃用变量的使用位置,并将其替换为新的变量/语法。

答案 2 :(得分:1)

我在烧瓶设置中使用pymysql库时出错了。降级到mysql 5.6有效,但可能不是最好的解决方案。

答案 3 :(得分:0)

我安装了sqlalchemy == 1.1.15,问题是一样的。因此,我更改了sqlalchemy的base.py中的命令,如下所示:

    #cursor.execute('SELECT @@tx_isolation')
    cursor.execute('SELECT @@transaction_isolation')

你必须开始一个新的python才能看到变化。