每次我重新连接到 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 服务器已消失”时重新连接到数据库?