概括
本文面向Flix管理员。文中提供了一些示例,说明如何直接向 MySQL 发出查询以收集有关Flix的信息。
更多信息
Flix将其所有节目、序列和面板的信息保存在 MySQL 数据库中。高级Flix管理员可以直接从 MySQL 中提取这些信息。这有助于提取特定信息并排查Flix故障。
您可以使用内置的mysql命令行工具或 MySQL Workbench 或 Sequel Pro 等第三方工具与 MySQL 进行交互。
在下面的示例中,您需要将“ <?> ”字符替换为所需的信息,查询才能有效。
- 使用节目名称获取节目 ID
- 从名称获取序列 ID
- 查找面板资源的路径
- 显示用户列表(不包括系统用户)
- 查找使用特定文件名的面板 ID
- 获取易于阅读的服务器列表
- 查找面板 ID 的Flix 5 元数据
- 从Flix 5 元数据中查找面板修订
使用节目名称获取节目 ID
在这个例子中,你可以使用节目的名称来获取项目的节目 ID。
mysql> SELECT
`shows`.`show_id`,
`shows`.`title`
FROM
`shows`
WHERE
`shows`.`title` LIKE '% <?> %';
+---------+-----------------+
| show_id | title |
+---------+-----------------+
| 2 | the little bird |
+---------+-----------------+
从名称获取序列 ID
在这个例子中,你可以使用序列名称来获取序列 ID。
mysql> SELECT
`sequence`.`id`,
`sequence`.`description`
FROM
`sequence`
WHERE
`sequence`.`description` LIKE '% <?> %';
+----+-------------+
| id | description |
+----+-------------+
| 2 | a place |
+----+-------------+
查找面板资源的路径
在这个例子中,您可以找到存储设备上特定资产的文件路径。
mysql> SELECT
`vPanel_asset_ref`.`panel_id` AS PanelID,
`vPanel_asset_ref`.`vPanel_id` AS PanelRevision,
`media_object`.`ref` AS Ref,
CONCAT('<asset_dir>/', `media_object`.`id`, '_', `media_object`.`filename`) AS FilePath
FROM
`media_object`
LEFT JOIN
`asset` ON `asset`.`asset_id` = `media_object`.`asset_id`
LEFT JOIN
`vPanel_asset_ref` ON `vPanel_asset_ref`.`asset_id` = `asset`.`asset_id`
WHERE
`vPanel_asset_ref`.`show_id` = <?> and
`vPanel_asset_ref`.`sequence_id` = <?> and
`vPanel_asset_ref`.`panel_id` = <?> ;
+---------+---------------+-----------+------------------------------+
| PanelID | PanelRevision | Ref | FilePath |
+---------+---------------+-----------+------------------------------+
| 1 | 1 | artwork | <asset_dir>/3_test.0491.jpeg |
| 1 | 1 | thumbnail | <asset_dir>/16_079043250.png |
| 1 | 1 | scaled | <asset_dir>/20_019628328.png |
| 1 | 1 | fullres | <asset_dir>/25_552125904.png |
+---------+---------------+-----------+------------------------------+
显示用户列表(不包括系统用户)
在这个例子中,您可以获取可以使用Flix的用户列表。如果您使用 LDAP 或 OAuth 身份验证,则Flix访问权限列表可能不完整。在这种情况下,您将获得之前登录过Flix用户列表。
mysql> SELECT
`user`.`id`,
`user`.`username`,
`user`.`is_admin`,
`user`.`type`,
`user`.`email`,
`user`.`deleted`
FROM
`user`
WHERE
`user`.`is_system` = 0;
+----+----------+----------+------+------------------------+---------+
| id | username | is_admin | type | email | deleted |
+----+----------+----------+------+------------------------+---------+
| 1 | admin | 1 | flix | flix -admin@foundry.com | 0 |
+----+----------+----------+------+------------------------+---------+
查找使用特定文件名的面板 ID
在这个例子中,您可以找到特定文件的面板 ID。
mysql> SELECT
`shows`.`title` AS ShowTitle,
`sequence`.`description` AS SequenceTitle,
`panel`.`panel_id` AS PanelID
FROM
`media_object`
LEFT JOIN
`asset` ON `asset`.`asset_id` = `media_object`.`asset_id`
LEFT JOIN
`shows` ON `shows`.`show_id` = `asset`.`show_id`
LEFT JOIN
`vPanel_asset_ref` ON `vPanel_asset_ref`.`asset_id` = `asset`.`asset_id`
LEFT JOIN
`vPanel` ON `vPanel`.`show_id` = `vPanel_asset_ref`.`show_id` AND
`vPanel`.`sequence_id` = `vPanel_asset_ref`.`sequence_id` AND
`vPanel`.`panel_id` = `vPanel_asset_ref`.`panel_id`
LEFT JOIN
`sequence` ON `sequence`.`id` = `vPanel`.`sequence_id` AND
`sequence`.`id` = `vPanel`.`sequence_id`
LEFT JOIN
`panel` ON `panel`.`panel_id` = `vPanel`.`panel_id`
WHERE
`media_object`.`id` = SUBSTRING_INDEX(' <?> ', '_', 1) AND
`media_object`.`filename` = SUBSTRING_INDEX(' <?> ', '_', -1)
GROUP BY
ShowTitle, SequenceTitle, PanelID;
+------------+---------------+---------+
| ShowTitle | SequenceTitle | PanelID |
+------------+---------------+---------+
| show1 | seq_qwery | 1 |
| other show | asdf | 1 |
+------------+---------------+---------+
获取易于阅读的服务器列表
在这个例子中,您可以获取所有Flix服务器的列表。您也可以在Flix客户端的“管理控制台”->“服务器”中找到它。
mysql> SELECT
HEX(`server`.`server_id`) AS serverIdent,
INET_NTOA(`server`.`host_ip`) AS IP,
`server`.`port`,
`server`.`rpc_port`,
`server`.`running`,
`server`.`start_date`,
`server`.`hostname`
FROM
`server`;
+----------------------------------+--------------+------+----------+---------+---------------------+-----------------+
| serverIdent | IP | port | rpc_port | running | start_date | hostname |
+----------------------------------+--------------+------+----------+---------+---------------------+-----------------+
| F22A1072B6754BCDB78477EDCD81F8FD | 192.168.1.67 | 8080 | 9876 | 1 | 2021-02-01 13:18:29 | flx.foundry.com |
+----------------------------------+--------------+------+----------+---------+---------------------+-----------------+
查找面板 ID 的Flix 5 元数据
在这个例子中,您可以找到Flix为从Flix 5 迁移过来的面板保留的数据。
mysql> SELECT
`vpanel`.`panel_id`,
`vpanel`.`data`
FROM
`vpanel`
WHERE
`show_id` = <?> AND
`sequence_id` = <?> AND
`vpanel`.`panel_id` = <?> ;
+----------+----------------------------------------------------------+
| panel_id | data |
+----------+----------------------------------------------------------+
| 1 | {"flix5_panel_id": "31", "flix5_panel_revision": "1"} |
| 1 | {"flix5_panel_id": "31", "flix5_panel_revision": "2"} |
| 1 | {"flix5_panel_id": "31", "flix5_panel_revision": "3"} |
+----------+----------------------------------------------------------+
从Flix 5 元数据中查找面板修订
当您想查找Flix 5 面板对应的Flix版本时,此搜索功能非常有用。
mysql> SELECT
`vPanel`.`show_id`,
`vPanel`.`sequence_id`,
`vPanel`.`panel_id`,
`vPanel`.`panel_revision`
FROM
`vPanel`
JOIN
`sequence` ON `sequence`.`id` = `vPanel`.`sequence_id`
WHERE
`vPanel`.`data`->"$.flix5_panel_id" = " <?> " AND
`vPanel`.`data`->"$.flix5_panel_revision" = " <?> " AND
`sequence`.`tracking_code` = " <?> ";
+---------+-------------+----------+----------------+
| show_id | sequence_id | panel_id | panel_revision |
+---------+-------------+----------+----------------+
| 7| 97 | 236 | 1 |
+---------+-------------+----------+----------------+
延伸阅读
如果您要查找的并非此内容,而是想了解如何安装 MySQL,您可以参考以下文章:
Q100551:在 Red Hat/CentOS 7 或 Rocky 9 上安装 MySQL 8
如果您想了解备份/恢复Flix数据库数据的最佳实践,请查看以下两篇文章:
您可以从以下文章中了解如何获取 show_id 和 sequence_id:
Q100619:如何从Flix客户端检索 show_id 和/或 sequence_id?
最后,如需了解如何以最有效的方式设置Flix ,您可以阅读这篇文章:
Q100593:Optimum Flix服务器设置
我们很遗憾听到
请告诉我们