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