Utilisation de plugin dans MySQL Server 8.0
Je voulais trouver un exemple d’utilisation de plugin dans MySQL Server 8. J’ai choisi de tester le plugin auth_socket qui permet de se connecter avec votre seul compte UNIX à MySQL, sans avoir à saisir de mot de passe lors de la connexion au moteur de bases de données.
Dossier des plugins
Sous Linux, les plugins sont installés dans le dossier /usr/lib/mysql/plugin. Ce dossier peut être modifié à l’aide de la variable plugin_dir. Sa modification ne peut se faire qu’à froid dans un des fichiers de configuration de votre instance MySQL situé dans /etc/mysql/mysql.conf.d, de préférence :
[mysqld] plugin_dir=/usr/lib/mysql/plugin
Si vous changez la valeur de cette variable, vous devrez ensuite redémarrer le serveur MySQL :
systemctl restart mysql
Installer un plugin
Les plugins sont des fichiers .so (Shared Object Dynamic Library assimilable à des DLL sous Windows). Pour installer le plugin auth_socket par exemple, tapez à partir de l’interpréteur MySQL :
INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';
Le nom du plugin peut être différent du nom de fichier.
Liste des plugins
Pour visualiser la liste des plugins installés, tapez l’une des deux commandes suivantes :
SHOW PLUGINS; SELECT * FROM information_schema.plugins;
Utilisation du plugin auth_socket
Dans l’exemple suivant, je crée un administrateur local de MySQL :
CREATE USER 'admin' IDENTIFIED WITH auth_socket; GRANT ALL PRIVILEGES ON *.* TO 'admin' WITH GRANT OPTION;
Pour vous connecter en mode peer/socket, tapez seulement la commande mysql après vous être connecté en tant qu’utilisateur Linux admin.
Un autre plugin : InnoDB Memcached
MySQL 8.0 propose d’autres plugins fort intéressants comme le plugin InnoDB Memcached :
INSTALL PLUGIN daemon_memcached SONAME 'libmemcached.so';
Ce plugin permet de créer des tables en mémoire. Il nécessite que vous installiez et configuriez le démon memcached sur votre système Linux.
Désinstaller un plugin
La désinstallation du plugin auth_socket se fait très simplement.
UNINSTALL auth_socket;