我使用存储库将 16.04 Ubuntu 从 0.28 升级到 0.29,但我认为数据库升级部分失败了。
客户端无法连接到后端,后端无法启动数据库。
从控制台启动后端:
2017-08-08 08:06:30.200754 N AutoExpire: CalcParams(): Max required Free Space: 200.0 GB w/freq: 15 min
2017-08-08 08:06:30.522258 I Bonjour: Service registration complete: name 'Mythbackend on KISE-055' type '_mythbackend._tcp.' domain: 'local.'
2017-08-08 08:06:31.077985 C MainServer: MainServer::HandleVersion - Client speaks protocol version 88 but we speak 91!
2017-08-08 08:06:31.078770 I Control sock(1742760) disconnected
2017-08-08 08:06:31.080545 C MainServer: MainServer::HandleVersion - Client speaks protocol version 88 but we speak 91!
2017-08-08 08:06:31.081065 I Control sock(1735860) disconnected
不确定如何完成或恢复数据库...
我尝试过这个:
/usr/share/mythtv$ ./mythconverg_restore.pl --drop_database --create_database --directory /pvu/db_bu/ --filename mythconverg-1344-20170808050503.sql.gz
得到了这个结果:
Shall I upgrade this database? [yes] yes
2017-08-08 09:32:21.659464 C Upgrading to MythTV schema version 1345
2017-08-08 09:32:21.690326 C Upgrading to MythTV schema version 1346
2017-08-08 09:32:21.736203 C Upgrading to MythTV schema version 1347
2017-08-08 09:32:21.741109 C Upgrading to MythTV schema version 1348
2017-08-08 09:32:21.872756 I Database schema upgrade complete.
2017-08-08 09:32:21.873649 I Loading en_us translation for module mythfrontend
2017-08-08 09:32:21.875720 N MythBackend: Starting up as the master server.
仍然会产生“客户端使用协议版本 88,但我们使用 91!”的错误
更新:解决方法 - 从 0.29 降级到 0.28 并从备份中恢复数据库。仍在等待答复……
答案1
“客户端使用协议版本 88,而我们使用 91”意味着您的后端和前端(客户端)运行的不是同一版本。具体来说,这意味着您的后端比前端更新。
版本 88 适用于 MythTV 0.28,版本 91 适用于 MythTV 29。
参见 0.28 和 29 中的 MYTH_PROTO_VERSION:
- https://github.com/MythTV/mythtv/blob/fixes/0.28/mythtv/libs/libmythbase/mythversion.h#L47
- https://github.com/MythTV/mythtv/blob/fixes/29/mythtv/libs/libmythbase/mythversion.h#L47
您需要将(所有)客户端更新至 MythTV 29。默认情况下Xenial 附带 MythTV 0.28,Ubuntu 17.10 包含 MythTV 29。但是有一个神话电视 29 PPA由旧 Mythbuntu 团队为 Ubuntu 14.04 及以上版本提供。
提示:Github 用于存储大量开源项目。了解如何浏览那里的搜索框和“分支”下拉菜单可能是明智之举。