Il existe de nombreux articles comme ce titre, mais je me demande s'il y a peu d'exemples dans Ubuntu. Je ne suis pas allé directement, j'ai donc décidé d'écrire un article.
Version | |
---|---|
OS hôte | Ubuntu Server 20.04.1 LTS |
MySQL côté hôte | Ver 8.0.22 |
Côté client MySQL(MariaDB) | 10.3.23-MariaDB |
Puisque le côté client utilisait cette fois «Raspberry Pi», j'utilise «mariaDB» (est-ce que mysql n'a pas été inclus dans raspbian?). Puisque MySQL et mariaDB sont presque compatibles, je pense qu'il n'y a aucun problème si vous le faites entre la série MySQL 8.
Cependant, il semble que 10.3 de MariaDB équivaut à 5.7 de MySQL. Il y a un problème lors de la connexion de la 5e à la 8e série, je vais donc l'expliquer ci-dessous.
On suppose que MySQL est déjà installé côté hôte et côté client.
Par défaut, seul l'hôte local peut être connecté, définissez donc la plage de divulgation.
Accédez à / etc / mysql / mysql.conf.d / mysqld.cnf
et modifiez l'emplacement de bind-address
comme suit.
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bash:/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
default_authentication_plugin=mysql_native_password #Cette ligne est également ajoutée lorsque le côté client est 5 séries. Non requis pour la série 8.
Après avoir terminé les paramètres, redémarrez MySQL.
$ /etc/init.d/mysql restart
Connectez-vous à MySQL et créez un utilisateur avec la commande suivante.
Ici, admin
signifie le nom d'utilisateur, et '%'
après @ signifie n'importe quelle adresse IP.
CREATE USER 'admin'@'%' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL ON *.* TO 'admin'@'%';
Vérifions avec la commande suivante.
select user,host from mysql.user;
Ce n'est pas grave si cela ressemble à ce qui suit.
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| admin | % |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
Connectons-nous depuis le côté distant.
$ mysql -u admin -h [adresse IP] -p
Si le côté distant est la série MySQL8, vous pouvez vous connecter avec ceci.
Si le côté distant est de la série 5, l'erreur suivante se produira.
ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded: /usr/lib/arm-linux-gnueabihf/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
En effet, le plug-in d'authentification a été modifié dans la série 8. Cette fois, j'aimerais le résoudre en remplaçant le plug-in d'authentification côté hôte par celui utilisé dans la série 5.
Ajoutez ce qui suit aux paramètres MySQL. (Dans le paramètre ci-dessus, ceci est ajouté)
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
:/etc/mysql/mysql.conf.d/mysqld.cnf
default_authentication_plugin=mysql_native_password
Après avoir terminé les paramètres, redémarrez MySQL.
$ /etc/init.d/mysql restart
Désormais, en créant l'utilisateur de la même manière qu'auparavant, le plug-in d'authentification sera modifié. Allons vérifier.
mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| admin | % | mysql_native_password |
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | auth_socket |
+------------------+-----------+-----------------------+
https://qiita.com/katzueno/items/e735950c7440f232ef27 https://sys-guard.com/post-8501/ https://symfoware.blog.fc2.com/blog-entry-2159.html https://www.s-style.co.jp/blog/2018/05/1807/
Recommended Posts