我正在寻找一种方法来提取从显示主状态返回的信息,以便我可以将文件和位置值分配给一个变量。我可以将slave_relay_log_info和slave_work_info设置为表,但这不会显示我需要的本地主机信息。显示主状态;我不确定哪个表保存"显示主机状态"数据。
lymnna711#
在Linux bash脚本中,您可以尝试通过mysql客户端使用以下命令将文件和位置存储在变量中
文件:
第一个月
职位:
mysql -u username -p password -h IP -P Port -e "show master status" | grep "Position"| cut -d ":" -f2
uxhixvfz2#
对于MySQL 8.0,日志文件和日志位置位于performance_schema模式的log_status表中:
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 | +--------------------+----------+
2条答案
按热度按时间lymnna711#
在Linux bash脚本中,您可以尝试通过mysql客户端使用以下命令将文件和位置存储在变量中
文件:
第一个月
职位:
mysql -u username -p password -h IP -P Port -e "show master status" | grep "Position"| cut -d ":" -f2
uxhixvfz2#
对于MySQL 8.0,日志文件和日志位置位于
performance_schema
模式的log_status
表中:可以如下所示直接提取值: