如何在Plesk中启动数据库同步或清除MySQL控制台删除的残留数据库?
解决Plesk中残留已删除数据库记录的方法
1. 使用Plesk官方修复工具(推荐)
这是最安全高效的同步方式,Plesk自带的修复工具会自动校验psa数据库与实际MySQL实例的状态差异:
- 先执行模拟检查,预览需要清理的无效数据库记录(不会修改任何数据):
plesk repair db -n - 确认检查结果无误后,执行实际修复,工具会自动删除Plesk中残留的无效数据库条目:
plesk repair db
2. 用Plesk命令行工具精准清理
如果修复工具未完全解决问题,可以通过Plesk命令行工具手动处理:
- 列出Plesk系统中登记的所有数据库:
plesk bin database --list - 登录MySQL控制台,查看当前实际存在的数据库:
mysql -uadmin -p$(cat /etc/psa/.psa.shadow) -e "SHOW DATABASES;" - 对比两者结果,定位已删除但仍在Plesk中显示的数据库,逐个执行删除命令(该命令会自动同步清理
psa数据库中的关联记录):plesk bin database --remove <无效数据库名称>
3. 手动操作psa数据库(备选,谨慎使用)
仅当上述方法均无效时再考虑此操作,操作前必须备份psa数据库:
- 备份
psa数据库:mysqldump -uadmin -p$(cat /etc/psa/.psa.shadow) psa > psa_backup_$(date +%Y%m%d).sql - 登录
psa数据库:mysql -uadmin -p$(cat /etc/psa/.psa.shadow) psa - 查询Plesk登记的所有数据库名称:
SELECT name FROM databases; - 对比实际MySQL中的数据库列表,找出无效记录并删除:
DELETE FROM databases WHERE name = '<无效数据库名称>'; - 同步清理关联的数据库用户记录(若存在):
DELETE FROM db_users WHERE db_id = (SELECT id FROM databases WHERE name = '<无效数据库名称>');
内容的提问来源于stack exchange,提问作者Mihai Domocoş
相关产品推荐
相关产品推荐

