Mysql
 sql >> Base de données >  >> RDS >> Mysql

Connectez-vous au compte MySQL avec unix_socket

Pour vous connecter à un serveur MySQL distant, que ce soit directement ou via un tunnel SSH, vous ne pouvez pas utiliser le unix_socket plugin d'authentification qui nécessite un accès local au fichier socket unix sur le système d'exploitation DB Server.

Le unix_socket Le plugin est implémenté à l'aide d'un type de fichier spécial (socket unix) qui est une forme de communication inter-processus (IPC) dans les systèmes * nix. Il permet à votre client CLI mysql de parler à la base de données et nécessite un accès local au fichier socket (c'est-à-dire :/tmp/mysql.sock ). Lorsque vous vous connectez au socket, le unix_socket plugin (côté serveur) obtiendra l'uid de l'utilisateur connecté au socket (c'est-à-dire votre utilisateur) et vous authentifiera automatiquement sans avoir besoin d'un mot de passe.

Solutions possibles :

Si vous vous connectez à la machine B avec un utilisateur non root, vous devez créer un utilisateur de base de données portant le même nom que le nom de votre compte utilisateur de système d'exploitation non root.

GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'localhost' IDENTIFIED VIA unix_socket;

Vous pouvez maintenant vous connecter à mysql en utilisant votre compte utilisateur et le client CLI mysql en exécutant simplement :

youruser:~$ mysql

Si vous souhaitez vous connecter à la base de données avec l'utilisateur root, vous devez soit accéder au compte root, soit une stratégie sudo associée à votre utilisateur pour exécuter le client mysql.

youruser:~$ sudo mysql

Vous pouvez évidemment activer un accès réseau authentifié régulier à votre compte racine DB. Cela peut entraîner des problèmes de sécurité, il est donc préférable de le limiter à localhost :

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'xxx' WITH GRANT OPTION;

Vous pouvez désormais vous connecter à partir de n'importe quel compte de système d'exploitation local si vous pouvez authentifier votre connexion :

youruser:~$ mysql -u root -p