每次我重新连接到 MySQL 数据库时,所有表都是空的

Posted

技术标签:

【中文标题】每次我重新连接到 MySQL 数据库时,所有表都是空的【英文标题】:Every time I reconnect to a MySQL database, all the tables are empty 【发布时间】:2016-08-20 20:38:25 【问题描述】:

我对 mysql 很陌生,所以我首先使用 www.freesqldatabase.com 来设置数据库。每当我连接到它时,我都可以设置将通过连接持续存在的表和数据库,但我输入的任何数据对于该连接都是唯一的。即使我通过 DataGrip 查看数据库,如果我向表中添加一行,我在刷新 datagrip 时也无法查看它,但我的 Python 程序可以检索它刚刚从数据库中创建的数据。但是,当我检索到数据库的新连接时,表中的行都不存在。

例如,在我的身份验证表(有两个键:“id”和“token”)上,我会这样做:

insert into auth values ('id', 'token')
select id from auth where token = 'token'

结果我会得到'id'。但是当我开始一个新的数据库连接并做

select id from auth where token = 'token'

它返回不存在。我在 DataGrip 中执行相同的请求,使用相同的用户名/密码/ip/数据库,但出现相同的错误。

我也尝试在 Google Cloud SQL 服务上执行此操作,但我遇到了同样的问题。所以这不是我使用的服务器的问题。

这可能是什么原因造成的?

【问题讨论】:

好像你没有提交事务。你从select @@autocommit 得到什么? 【参考方案1】:

当我连接到我的数据库时,我将 autocommit 设置为 true,这解决了我的问题。

【讨论】:

【参考方案2】:

尝试执行

insert into auth values ('id', 'token');
commit;

【讨论】:

以上是关于每次我重新连接到 MySQL 数据库时,所有表都是空的的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Workbench:“MySQL 服务器已消失”时重新连接到数据库?

在 log4j 中重新连接到数据库

通信链路故障时 Grails 重新连接到 mysql

Python mysql(使用pymysql)自动重新连接

使用 socket.io 连接到带有套接字的 mysql 数据库时出错

无法用php连接到mysql