WL#13958: Deprecate relay_log_info_repository and master_info_repository
Affects: Server-8.0
—
Status: Complete
EXECUTIVE SUMMARY ================= This worklog deprecates the option relay_log_info_repository and master_info_repository. There shall not be any alternative and the replication configuration and metadata shall always be stored in a transactional (InnoDB based) system table. The default of relay_log_info_repository and master_info_repository is TABLE already. Background ========== This worklog implements a deprecation warning when the user sets or reads the value of relay_log_info_repository or master_info_repository WL#6959 has deprecated the use of these two options when set to FILE (master_info_repository=FILE and relay_log_info_repository=FILE). This WL deprecates the two options and warning is logged irrespective of value set. By default server shall always use TABLE repositories. The default is TABLE as of WL#10474: Defaults: Store Replication Metadata In InnoDB WL#11031 deprecated the use of --relay-log-info-file and --master-info-file Rationale ========= - We want users to use only TABLE repository going forward, since it is transactional. - New features require TABLE repositories (Multisource, GR). - We want replication to be safe and not use MyISAM tables or depend on external files as much as possible. - The default is to store replication metadata in InnoDB tables already in MySQL 8.
FR1. server SHALL emit a warning in the session when configuring
relay-log-info-repository in the session (SET GLOBAL
relay_log...)
FR2. server SHALL emit a warning, at server start time, when
configuring relay-log-info-repository in the server
configuration file (relay_log_info_repository=..)
FR3. server SHALL emit a warning in the session when configuring
master-info-repository in the session (SET GLOBAL
master_info...)
FR4. server SHALL emit a warning, at server start time, when
configuring master-info-repository in the server
configuration file (master_info_repository=..)
User Visible Changes
====================
- Deprecation Warning in the session when setting
relay-log-info-repository dynamically
The user visible change is that a deprecation warning will be emited
when the user configures relay-log-info-repository in the
session irrespective of the value set:
mysql> SET GLOBAL relay_log_info_repository=TABLE;
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
Level: Warning
Code: 1287
Message: '@@relay_log_info_repository' is deprecated and will be removed in a
future release.
1 row in set (0.01 sec)
- Deprecation Warning in the error log when setting
relay-log-info-repository in the server configuration
The user visible change is that a deprecation warning will be emited
when the user configures relay-log-info-repository in the config file
and the server is restarted. Example:
2020-08-14T11:05:22.830731Z 0 [Warning] [MY-011069] [Server] The syntax
'--relay-log-info-repository' is deprecated and will be removed in a
future release.
- Deprecation Warning in the session when setting
master-info-repository dynamically
The user visible change is that a deprecation warning will be emited
when the user configures relay-log-info-repository=FILE in the
session:
mysql> SET GLOBAL master_info_repository=TABLE;
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
Level: Warning
Code: 1287
Message: '@@master_info_repository' is deprecated and will be removed in a
future release.
1 row in set (0.00 sec)
- Deprecation Warning in the error log when setting
relay-log-info-repository in the server configuration
The user visible change is that a deprecation warning will be emited
when the user configures master-info-repository in the config file and
the server is restarted. Example:
2020-08-14T10:58:53.283596Z 0 [Warning] [MY-011069] [Server] The syntax
'--master-info-repository' is deprecated and will be removed in a
future release.
Upgrades
========
After using MySQL 8, the user will get the deprecation warnings as
described in the previous section. This however, shall not break
backwards compatibility.
Security
========
There are no security considerations.
Observability
=============
There are no observability considerations. There is no new
functionality added only a new warning is emited.
LOW LEVEL CHANGES
=================
1. Deploy DEPRECATED_VAR("") in the master-info-repository and
relay-log-info-repository variable declaration.
2. Deploy conditional calls to push_deprecated_warn in
mysql_get_one_options, for both relay_log_info_file and
master_info_file, so that the warning is pushed at server start
time, when the options is set.
3. Add test case validating session and server start warnings.
Copyright (c) 2000, 2025, Oracle Corporation and/or its affiliates. All rights reserved.