Publication externe et connexion de MySQL sur Ubuntu

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.

environnement

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.

[Côté hôte] Paramètres de divulgation externe

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

[Côté hôte] Créer un utilisateur pour la connexion

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 |
+------------------+-----------+

Connexion depuis le côté distant

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.

Connectez-vous à MySQL 5 à 8

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           |
+------------------+-----------+-----------------------+

URL de référence

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

Publication externe et connexion de MySQL sur Ubuntu
Installez docker et docker-compose sur ubuntu dans les plus brefs délais
Installez JDK et JRE sur Ubuntu 16.10
Activer les SDK Java 8 et Java 11 sur Ubuntu
Installez Ubuntu Server 20.04 dans VirtualBox sur Mac et établissez une connexion SSH
Utiliser docker dans un environnement proxy sur ubuntu 20.04.1
Mettez Zabbix dans Ubuntu avec Docker et surveillez Docker sur le même hôte
Essayez de mettre Docker dans ubuntu sur WSL
Construire et installer la version de développement Wireshark (3.3.1) sur Ubuntu
Construction de l'environnement Protobuf et gRPC C ++ sur Ubuntu 18.04
Sortie des journaux de demande et de réponse avec Spring Boot
Placez les fichiers CSV contenant "'" et "" "dans Ruby 2.3 dans MySQL
Installez plusieurs Javas et basculez entre eux sur Ubuntu
Docker sur Ubuntu18.04 sur WSL2 et instructions d'installation de VSCode
Télécharger et télécharger des notes en java sur S3
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
Ce sur quoi je suis tombé par hasard dans MySQL 5.5-> 5.7
Installez Veeam PN sur Ubuntu dans IBM Cloud VPC et connectez-vous avec SSL VPN
J'ai essayé d'utiliser YOLO v4 sur Ubuntu et ROS
Installez rbenv avec apt sur ubuntu et mettez ruby
Construisez TensorFlow 2.3.1 à partir des sources sur Ubuntu20.04 LTS et créez une bibliothèque partagée en langage C ++