File tree Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -8700,16 +8700,31 @@ Encryption::get_master_key(ulint master_key_id,
87008700 ret = my_key_fetch (key_name, &key_type, NULL ,
87018701 reinterpret_cast <void **>(master_key), &key_len);
87028702
8703+ if (key_type) {
8704+ my_free (key_type);
8705+ }
8706+
8707+ /* For compitable with 5.7.11, we need to try to get master key with
8708+ server id when get master key failure. */
8709+ if (ret || *master_key == NULL ) {
8710+ memset (key_name, 0 , ENCRYPTION_MASTER_KEY_NAME_MAX_LEN);
8711+ sprintf (key_name, " %s-%lu-%lu" , ENCRYPTION_MASTER_KEY_PRIFIX,
8712+ server_id, master_key_id);
8713+
8714+ ret = my_key_fetch (key_name, &key_type, NULL ,
8715+ reinterpret_cast <void **>(master_key),
8716+ &key_len);
8717+ if (key_type) {
8718+ my_free (key_type);
8719+ }
8720+ }
8721+
87038722 if (ret) {
87048723 *master_key = NULL ;
87058724 ib::error () << " Encryption can't find master key, please check"
87068725 " the keyring plugin is loaded." ;
87078726 }
87088727
8709- if (key_type) {
8710- my_free (key_type);
8711- }
8712-
87138728#ifdef UNIV_ENCRYPT_DEBUG
87148729 if (!ret && *master_key) {
87158730 fprintf (stderr, " Fetched master key:%lu " , master_key_id);
You can’t perform that action at this time.
0 commit comments