Externe Veröffentlichung und Anmeldung von MySQL unter Ubuntu

Es gibt viele Artikel wie diesen Titel, aber ich frage mich, ob es in Ubuntu nur wenige Beispiele gibt. Ich bin nicht gerade gegangen, also habe ich beschlossen, einen Artikel zu schreiben.

Umgebung

Version
Host-Betriebssystem Ubuntu Server 20.04.1 LTS
Host-Seite MySQL Ver 8.0.22
Clientseitiges MySQL(MariaDB) 10.3.23-MariaDB

Da die Client-Seite diesmal "Raspberry Pi" verwendete, verwende ich "mariaDB" (war MySQL nicht in Raspbian enthalten?). Da MySQL und mariaDB fast kompatibel sind, gibt es meines Erachtens kein Problem, wenn Sie dies zwischen den MySQL 8-Serien tun.

Es scheint jedoch, dass 10.3 von MariaDB 5.7 von MySQL entspricht. Es gibt ein Problem beim Anmelden von der 5. bis zur 8. Serie, daher werde ich es weiter unten erläutern.

Es wird davon ausgegangen, dass MySQL bereits auf der Host- und der Client-Seite installiert ist.

[Host-Seite] Externe Offenlegungseinstellungen

Standardmäßig kann nur localhost verbunden werden. Legen Sie daher den Offenlegungsbereich fest. Greifen Sie auf / etc / mysql / mysql.conf.d / mysqld.cnf zu und ändern Sie den Speicherort von bind-address wie folgt.

$ 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 #Diese Zeile wird auch hinzugefügt, wenn die Clientseite aus 5 Serien besteht. Nicht erforderlich für 8 Serien.

Starten Sie MySQL nach Abschluss der Einstellungen neu.

$ /etc/init.d/mysql restart

[Hostseite] Erstellen Sie einen Benutzer für die Verbindung

Melden Sie sich bei MySQL an und erstellen Sie einen Benutzer mit dem folgenden Befehl. Hier bedeutet "admin" den Benutzernamen und "%" nach @ eine beliebige IP-Adresse.


CREATE USER 'admin'@'%' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL ON *.* TO 'admin'@'%';

Lassen Sie uns mit dem folgenden Befehl überprüfen.

select user,host from mysql.user;

Es ist in Ordnung, wenn es wie folgt aussieht.

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

Melden Sie sich von der Remote-Seite an

Melden wir uns von der Remote-Seite aus an.

$ mysql -u admin -h [IP Adresse] -p

Wenn es sich bei der Remote-Seite um die MySQL8-Serie handelt, können Sie sich damit anmelden.

Melden Sie sich bei MySQL 5 bis 8 an

Wenn es sich bei der Remote-Seite um eine 5er-Serie handelt, tritt der folgende Fehler auf.

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

Dies liegt daran, dass das Authentifizierungs-Plug-In in der 8er-Serie geändert wurde. Dieses Mal möchte ich das Problem lösen, indem ich das Authentifizierungs-Plug-In auf der Host-Seite in das in der 5er-Serie verwendete Plug-In ändere.

Fügen Sie den MySQL-Einstellungen Folgendes hinzu. (In der obigen Einstellung wird dies hinzugefügt)

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

:/etc/mysql/mysql.conf.d/mysqld.cnf


default_authentication_plugin=mysql_native_password

Starten Sie MySQL nach Abschluss der Einstellungen neu.

$ /etc/init.d/mysql restart

Wenn Sie den Benutzer jetzt auf die gleiche Weise wie zuvor erstellen, wird das Authentifizierungs-Plug-In geändert. Lass uns nachsehen.

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

Referenz-URL

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

Externe Veröffentlichung und Anmeldung von MySQL unter Ubuntu
Installieren Sie Docker und Docker-Compose in kürzester Zeit auf Ubuntu
Installieren Sie JDK und JRE unter Ubuntu 16.10
Aktivieren Sie Java 8- und Java 11-SDKs unter Ubuntu
Installieren Sie Ubuntu Server 20.04 in VirtualBox auf einem Mac und stellen Sie eine SSH-Verbindung her
Verwenden Sie Docker in einer Proxy-Umgebung unter Ubuntu 20.04.1
Setzen Sie Zabbix mit Docker in Ubuntu ein und überwachen Sie Docker auf demselben Host
Versuchen Sie, Docker in Ubuntu auf WSL zu setzen
Erstellen und installieren Sie Wireshark Development Release (3.3.1) unter Ubuntu
Protobuf- und gRPC C ++ - Umgebungskonstruktion unter Ubuntu 18.04
Anforderungs- und Antwortprotokolle mit Spring Boot ausgeben
Fügen Sie CSV-Dateien mit "'" und "" "in Ruby 2.3 in MySQL ein
Installieren Sie mehrere Javas und wechseln Sie unter Ubuntu zwischen ihnen
Installationsanweisungen für Docker unter Ubuntu18.04 unter WSL2 und VSCode
Laden Sie Notizen in Java auf S3 hoch und laden Sie sie herunter
Installieren Sie Ubuntu 20.04 in der virtuellen Box unter Windows 10 und erstellen Sie eine Entwicklungsumgebung mit Docker
Worauf ich in MySQL 5.5-> 5.7 gestoßen bin
Installieren Sie Veeam PN unter Ubuntu in IBM Cloud VPC und stellen Sie eine Verbindung mit SSL VPN her
Ich habe versucht, YOLO v4 unter Ubuntu und ROS zu verwenden
Installieren Sie rbenv mit apt auf Ubuntu und setzen Sie Ruby
Erstellen Sie TensorFlow 2.3.1 aus dem Quellcode unter Ubuntu20.04 LTS und erstellen Sie eine gemeinsam genutzte Bibliothek in C ++