python - python在cog文件中关闭db说它仍在运行,错误
问题描述
我们的不和谐机器人使用 sqlit3 来检索数据,但有时由于流量或错误导致数据库锁定。为了解决这个问题,我们必须复制和粘贴,所以我创建了一个复制粘贴和删除所有旧文件的功能。BUt 即使在关闭连接后它说数据库仍然打开,
def db_lock():
discord.close()
base_directory = os.getcwd().replace(os.sep , '/')
original = base_directory+'/discord.db'
new_file = base_directory+'/discord_locked.db'
os.rename(original, new_file)
shutil.copyfile(new_file, orginal)
解决方案
肯定有一些程序仍在使用数据库并保持打开状态。在 Windows 上,您可以尝试使用此软件检查其中一个并关闭它: http ://www.nirsoft.net/utils/opened_files_view.html
否则,在 Linux(或 MacOS)中,您可以使用fuser尝试类似的操作:
$ fuser discord.db
先前命令的输出应该是使用您的数据库的进程的 PID,使其保持打开状态。所以现在你只需要杀死你执行以下命令的进程:
kill -9 PID
其中PID是 fuser 之前返回的那个。
推荐阅读
- react-native - 如何更改 React 本机 TextInput 中光标的宽度?
- c# - 如何将焦点切换到 Angular 弹出窗口并滚动元素并单击
- android - google play apk 必须使用与之前版本相同的证书签名
- python - 从网站获取数据到python
- ruby-on-rails - 在 Rails 的 lib 文件夹中访问全局变量?
- amazon-web-services - Aws cognito 添加预定义用户
- ios - IOS App中的AppAuth,更新授权代码时发出问题/警报短暂显示然后消失
- python - Python - Pandas 百分比分布小于 80%
- r - 有效地将每行值转换为另一种货币
- javascript - 反应没有正确更新状态