在 do-release-upgrade 将我从已失效的 Mythbuntu 发行版切换到 Ubuntu 并在此过程中破坏了我的一堆 MythTV 包之后,我几乎让一切都恢复了正常。
我不得不重新安装一些mythtv-* 软件包(特别是mythtv-database),并在升级删除它后设置MySQL。幸运的是,所有数据都完好无损。在 MySQL 中,我必须启用网络并授予 mythconverg 数据库的权限。现在我可以从客户端成功连接到MythTV主后端服务器上的MySQL,所以数据库连接正常。另外,我可以在主后端服务器上本地运行 MythTV 前端,所以我知道那里的 MythTV 堆栈正在工作。
但是,当尝试连接到主后端时,专用的 MythTV 前端和我的标准 Ubuntu 工作站(未通过此升级)在 MythTV 端口 6543 上告诉我“连接被拒绝”。服务器端的 syslog 中没有显示任何内容,并且 6543 正在使用中(“nc -lp 6543”失败)。UFW 防火墙在客户端和服务器(和工作站)上处于非活动状态/禁用状态。在升级之前这不是问题,因此极不可能归咎于网络硬件。
我不知道是什么阻止了通往 MythTV 后端主服务器的流量。还有其他人有建议吗?
附加说明:在我修复 MySQL 访问之前,MythTV 前端最初要么在没有任何现有配置的情况下启动,要么只是崩溃。一旦我修复了 MySQL 访问权限,前端机器和我的工作站都以我在升级之前为每个主题选择的独特 MythTV 主题启动。这似乎表明 MythTV 前端连接到 SQL 很好,只是端口 6543 上的 MythTV 后端流量似乎失败了。
2017-03-12 更新:运行netstat -4lnp |grep :6543
返回:
tcp 0 0 127.0.0.1:6543 0.0.0.0:* LISTEN -
所以这让我觉得端口绑定到 127.0.0.1 地址,而不是我输入的实际服务器地址。即使服务器上的本地神话前端指向完整的服务器地址,这也可以解释事情,但即使是这种情况,我也不确定如何修复它。
允许远程机器上的神话前端访问在另一台机器上运行的神话后端
如果mythfrontend 没有与mythbackend 在同一台机器上运行,则需要一些额外的配置来允许远程访问mythbackend。
与神话后端主机上的 MYSQL 相关的两个单独的问题可能在起作用:
首先,确保在 my.cnf 文件“/etc/mysql/my.cnf”中启用了 my.cnf 主机上的网络。在此文件中,默认情况下存在以下内容(取决于版本),可防止远程神话前端访问神话后端主机上的数据库信息。
或者
或者
现在默认的不是跳过网络,而是只在 localhost 上侦听,这更兼容并且不那么安全。
因此,建议的解决方案是将“绑定地址”更改为机器的 LAN IP 地址——尽管这仅在 IP 地址是静态而不是动态分配的情况下才有效。
笔记
如果使用 bind-address,则只能配置为使用 1 个 IP 地址。
或者
或者
或者
笔记
最后一个例子没有'#'
其次,可能需要更改 MythTV 数据库的权限表以允许前端访问 mythbackend(NB;mythfrontend 通过登录到其 mysql 数据库与 mythbackend 进行通信——通常以用户 mythtv 的身份。在某些系统上默认情况下 mysql 将不允许另一台机器上的用户登录。以下授予具有 id mytv 的用户从任何机器访问 mytv 数据库)。
这可以通过从神话后端机器上的命令行执行以下命令来完成(感谢挪威的 Torfinn Ingolfsen)。
笔记:
下面命令中的“passwd”应该是MythTV配置中列出的密码,也可以在~/.mythtv/mysql.txt中找到
默认情况下,mysql 数据库 root 用户没有密码,所以这也应该通过保护默认 mysql 帐户来更改,请参阅:http://dev.mysql.com/doc/refman/5.1/en/default-privileges。 html
事实证明,mythtv 后端服务在网络启动之前才刚刚启动!启动后手动重新启动服务可解决此问题。(感谢pbennett。)