MySQL 5.6显示主机状态信息存储在哪里

fcipmucu  于 2023-01-08  发布在  Mysql
关注(0)|答案(2)|浏览(115)

我正在寻找一种方法来提取从显示主状态返回的信息,以便我可以将文件和位置值分配给一个变量。
我可以将slave_relay_log_info和slave_work_info设置为表,但这不会显示我需要的本地主机信息。
显示主状态;
我不确定哪个表保存"显示主机状态"数据。

lymnna71

lymnna711#

在Linux bash脚本中,您可以尝试通过mysql客户端使用以下命令将文件和位置存储在变量中

文件:

第一个月

职位:

mysql -u username -p password -h IP -P Port -e "show master status" | grep "Position"| cut -d ":" -f2

uxhixvfz

uxhixvfz2#

对于MySQL 8.0,日志文件和日志位置位于performance_schema模式的log_status表中:

mysql> SELECT * FROM log_status ;
+--------------------------------------+------------------------------------------------------------------------------------------+------------------+-----------------------------------------------------------+
| SERVER_UUID                          | LOCAL                                                                                    | REPLICATION      | STORAGE_ENGINES                                           |
+--------------------------------------+------------------------------------------------------------------------------------------+------------------+-----------------------------------------------------------+
| 506c04ec-815c-11ed-a962-0800272d3b77 | {"gtid_executed": "", "binary_log_file": "mysql-bin.000022", "binary_log_position": 157} | {"channels": []} | {"InnoDB": {"LSN": 36558461, "LSN_checkpoint": 36558461}} |
+--------------------------------------+------------------------------------------------------------------------------------------+------------------+-----------------------------------------------------------+

可以如下所示直接提取值:

mysql> SELECT JSON_EXTRACT(`LOCAL`, '$.binary_log_file') AS file, JSON_EXTRACT(`LOCAL`, '$.binary_log_position') AS position FROM log_status ;
+--------------------+----------+
| file               | position |
+--------------------+----------+
| "mysql-bin.000022" | 157      |
+--------------------+----------+

相关问题