Mysql : Plugin ‘none’ is not loaded

J’ai rencontré dernièrement une erreur suite à la restauration d’une base de données mysql 5.1 vers une base de données mysql 5.5.
En effet, je n’avais plus accès à ma base de données avec, lors de la connexion un joli message :

ERROR 1524 (HY000): Plugin 'none' is not loaded

et/ou

Client does not support authentication protocol requested by server; consider upgrading MySQL client

En cherchant sur le net on trouve une solution qui peut marcher, en upgradant la table:

sudo mysql_upgrade --password=root-password-here

Si cela ne marche pas, vous pouvez tenter en lançant Mysql sans privilege:

sudo /usr/sbin/mysqld --skip-grant-tables &

puis

sudo mysql_upgrade --force

Malheureusement pour moi, le problème persistait. En fait, Mysql ne trouve pas le champ « plugin » dans la table « user » de la base de données « mysql », même si ce champ existe. Pourquoi ? il semblerait que Mysql fait une recherche par la position du champ dans la table, et non par son nom.
Pour corriger ce malentendu, il suffit donc de modifier l’ordre des champs après max_user_connections dans cet ordre:

  • max_user_connections
  • plugin
  • authentification_string
  • dtcowner

Voici à quoi devrez ressembler votre table:

CREATE TABLE `user` (
  `Host` CHAR(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` CHAR(16) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Password` CHAR(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
  `Select_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Insert_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Update_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Delete_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Drop_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Reload_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Shutdown_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Process_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `File_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Grant_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `References_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Index_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Show_db_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Super_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_tmp_table_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Lock_tables_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Execute_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Repl_slave_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Repl_client_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_view_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Show_view_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_routine_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_routine_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_user_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Event_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Trigger_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_tablespace_priv` ENUM('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `ssl_type` ENUM('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
  `ssl_cipher` BLOB NOT NULL,
  `x509_issuer` BLOB NOT NULL,
  `x509_subject` BLOB NOT NULL,
  `max_questions` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  `max_updates` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  `max_connections` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  `max_user_connections` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  `plugin` CHAR(64) COLLATE utf8_bin DEFAULT '',
  `authentication_string` TEXT COLLATE utf8_bin,
  `dtcowner` VARCHAR(255) COLLATE utf8_bin NOT NULL DEFAULT 'none',
  PRIMARY KEY (`Host`,`User`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'

You may also like...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *