1. Änderung der Ubuntu-QuelleDie Quelle, die mit dem Ubuntu 20.04-System geliefert wird, installiert MySQL 8.0 direkt. Ich möchte MySQL 5.7 installieren, also ändere ich zuerst die Quelle. 1.1 Sichern Sie die ursprüngliche Quelldatei sudo cp /etc/apt/sources.list /etc/apt/sources.list.old 1.2 Ändern Sie die Datei sources.list sudo vim /etc/apt/sources.list Ich habe die Tsinghua-Spiegelquelle gewählt. Löschen Sie den Inhalt von „sources.list“, wählen Sie eine Quelle aus und fügen Sie sie in „sources.list“ ein, speichern Sie die Datei und beenden Sie das Programm. # Tsinghua-Spiegelquelle deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial Haupteingeschränktes Universum Multiversum deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial Haupt-eingeschränktes Universum Multiversum deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates Haupteingeschränktes Universum Multiversum deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates Haupteingeschränktes Universum Multiversum deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports Haupteingeschränktes Universum Multiversum deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports Haupteingeschränktes Universum Multiversum deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security Haupt-Eingeschränktes Universum Multiversum deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security Haupt-Eingeschränktes Universum Multiversum 1.3 Spiegelquellen und Software aktualisieren # Aktualisieren Sie die Spiegelquelle sudo apt-get update # Software aktualisieren sudo apt-get upgrade 2. MySQL installieren2.1 Installation mit apt-get install Für diese Methode muss der Server mit dem Internet verbunden sein # Führen Sie den folgenden Installationsbefehl aus. # Installieren Sie den mysql5.7-Server: sudo apt-get install mysql-server-5.7 # Installieren Sie den mysql5.7-Client sudo apt-get install mysql-client-5.7 # Verwenden Sie C/C++ und andere Sprachen, um die dynamische Linkbibliothek von MySQL zu betreiben. Wenn Sie sie nicht benötigen, können Sie sie installieren. sudo apt install libmysqlclient-dev Sie müssen das Passwort des MySQL-Root-Benutzers während der Installation zweimal eingeben (Sie müssen sich dieses Passwort merken). Überprüfen Sie nach Abschluss der Installation die MySQL-Version und den Dienst mysql -V # MySQL-Version anzeigen netstat -tap | grep mysql # MySQL-Dienst anzeigen Das obige Bild zeigt, dass die Installation erfolgreich war. 2.2 Installation mit dem Deb-Installationspaket Diese Installationsmethode kann mit oder ohne Internetverbindung verwendet werden. Sie können die für die folgende Installation verwendeten Pakete selbst herunterladen oder die von mir heruntergeladenen verwenden. Verknüpfung: https://pan.baidu.com/s/1lJq7hZH-X35f5gC-A-URiQ Extraktionscode: gxfk 1) Laden Sie das Deb-Installationspaket herunter Das Installationspaket kann direkt vom Server bezogen oder von der offiziellen Website heruntergeladen werden # Direkt vom Server abrufen (der Server muss mit dem Internet verbunden sein) wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar # Sie können die URL auch direkt in den Browser einfügen, um das komprimierte Installationspaket https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar herunterzuladen. Gehen Sie auf die offizielle Website, um es selbst herunterzuladen, wählen Sie die MySQL-Version und die Betriebssystemversion aus und klicken Sie auf „Herunterladen“. URL: https://downloads.mysql.com/archives/community/ 2) Installation mit dem Deb-Paket Importieren Sie das heruntergeladene komprimierte Paket # Erstellen Sie ein neues Verzeichnis mkdir mysql5.7.31 mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ./mysql5.7.31 # Entpacken Sie cd mysql5.7.31 sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar # Das dekomprimierte Deb-Installationspaket sieht wie folgt aus: libmysqlclient20_5.7.31-1ubuntu18.04_amd64.deb mysql-client_5.7.31-1ubuntu18.04_amd64.deb mysql-community-source_5.7.31-1ubuntu18.04_amd64.deb mysql-server_5.7.31-1ubuntu18.04_amd64.deb mysql-common_5.7.31-1ubuntu18.04_amd64.deb mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb libmysqlclient-dev_5.7.31-1ubuntu18.04_amd64.deb mysql-community-client_5.7.31-1ubuntu18.04_amd64.deb mysql-community-server_5.7.31-1ubuntu18.04_amd64.deb libmysqld-dev_5.7.31-1ubuntu18.04_amd64.deb mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb # Löschen Sie 2 testbezogene Pakete sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb Installation mit dpkg # Mit dpkg installieren sudo dpkg -i mysql-*.deb Das Ergebnis war falsch_^^ Der Fehler bedeutet, dass zwei Pakete fehlen # Wenn der Server eine Verbindung zum Internet herstellen kann, installieren Sie ihn direkt sudo apt-get install libtinfo5 sudo apt-get installiere libmecab2 Wenn der Server keine Verbindung zum Internet herstellen kann, laden Sie es selbst herunter und laden Sie es dann auf den Server hoch Download-URL: https://ubuntu.pkgs.org/ # Zum Herunterladen von Softwarepaketen müssen die Hardwarearchitekturen unterschieden werden [admin0@Ubuntu20:/home/admin0]$ uname -m # Hardwarearchitektur anzeigen x86_64 # x86_64 ist AMD64 Kopieren Sie die URL des Binärpakets in den Browser, um es herunterzuladen, und importieren Sie dann die heruntergeladenen Pakete sudo dpkg -i libtinfo5_6.2-0ubuntu2_amd64.deb sudo dpkg -i libmecab2_0.996-10build1_amd64.deb # Erneut installieren mit dpkg cd mysql5.7.31 sudo dpkg -i mysql-*.deb Aufforderung zur zweimaligen Eingabe des Root-Passworts, dann ist die Installation erfolgreich Überprüfen Sie nach Abschluss der Installation die MySQL-Version und den Dienst mysql -V # MySQL-Version anzeigen netstat -tap | grep mysql # MySQL-Dienst anzeigen Das obige Bild zeigt, dass die Installation erfolgreich war. 3. Neuen Benutzer anlegen und Berechtigungen erteilen3.1 Was tun, wenn Sie Ihr Passwort nicht festgelegt oder vergessen haben? # Stoppen Sie den MySQL-Dienst sudo service mysql stop # Ändern Sie die Anmeldeeinstellungen von MySQL und überprüfen Sie das Anmeldekennwort vorübergehend nicht sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # Kommentieren Sie "skip-external-locking" unter [mysqld] aus. # Fügen Sie "skip-grant-tables" hinzu, speichern und beenden Sie. Beispiel: ================================================ [mysqld] Benutzer = MySQL pid-Datei = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock Port = 3306 Basisverzeichnis = /usr Datenverzeichnis = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql #externe-Sperre-überspringen Skip-Grant-Tabellen ================================================= # Starten Sie die MySQL-Datenbank neu. sudo service mysql restart # Melden Sie sich ohne Passwort bei der MySQL-Datenbank an mysql -u root mysql # Ändern Sie das Root-Passwort. Update mysql.user. Set authentication_string=password('111222333'), wobei user='root'; # Berechtigungen aktualisieren; # MySQL-Anmeldeeinstellungen wiederherstellen # Unter [mysqld] hinzugefügtes „skip-grant-tables“ löschen # „skip-external-locking“ auskommentieren, speichern und beenden sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf Zum Beispiel: ================================================ [mysqld] Benutzer = MySQL pid-Datei = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock Port = 3306 Basisverzeichnis = /usr Datenverzeichnis = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql externe Verriegelung überspringen ================================================= # Starten Sie die MySQL-Datenbank neu. sudo service mysql restart # Melden Sie sich mit dem neuen Passwort bei MySQL an mysql -u Benutzername -p Passwort Datenbankname# Zum Beispiel: mysql -uroot -p111222333 mysql 3.2 Melden Sie sich bei MySQL an, um Informationen anzuzeigen # Melden Sie sich direkt bei MySQL an mysql -u Benutzername -p Passwort Datenbankname# Zum Beispiel: mysql -uroot -p111222333 mysql # Zuerst einloggen, dann das Passwort eingeben und die Datenbank auswählen mysql -u root -p Geben Sie das Passwort ein: „Root-Benutzerpasswort“ mysql> use mysql # Wählen Sie die zu verwendende Datenbank aus. # Wechseln Sie die Datenbank. Verwenden Sie den Datenbanknamen. # Alle Datenbanken anzeigen Datenbanken anzeigen; # Alle Tabellen in der Anmeldedatenbank anzeigen. Tabellen anzeigen; # Zeigen Sie die Datentabellenstruktur an. Desc-Tabellenname; # Den Anmeldebenutzernamen anzeigen select user(); # Den Namen der Anmeldedatenbank anzeigen select database(); # Überprüfen Sie die Version. Wählen Sie Version(); # Aktuelle Uhrzeit anzeigen select now(); # Benutzernamen, Anmeldehosts, Authentifizierungs-Plugins und Passwörter aller Benutzer anzeigen. select user,host,plugin,authentication_string from user; # Zeigen Sie die Berechtigungen des aktuell angemeldeten Benutzers an. Show Grants; # Berechtigungen aller Benutzer anzeigen (die spezifische Bedeutung der Berechtigungen wird später erläutert) Berechtigungen für root@localhost anzeigen; 3.3 Erstellen und Löschen von Datenbanken und Benutzern # Melden Sie sich als Root-Benutzer bei der Datenbank an mysql -uroot -p111222333 mysql # Datenbank erstellen create database "Datenbankname" charset="Datenbankkodierung"; # Zum Beispiel: Datenbank pydb charset=utf8 erstellen; # Erstellen Sie einen Datenbankbenutzer. Erstellen Sie den Benutzer „Benutzername“@„IP-Adresse“, identifiziert durch „Passwort“; # Zum Beispiel: Erstellen Sie den Benutzer „test0“@„localhost“, identifiziert durch „test0111“; # Daten löschen, Datenbank [Datenbankname] löschen; # Zum Beispiel: Datenbank pydb löschen; # Datenbankbenutzer löschen, Benutzer „Benutzername“@„IP-Adresse“ löschen; # Zum Beispiel: Benutzer „test0“@„localhost“ löschen; 3.4 Erteilen von Berechtigungen an Benutzer # Zeigen Sie die Berechtigungen des Benutzers test0show grants für test0@localhost an. Anzeige: [GRANT USAGE ON *.* TO 'test0'@'localhost'] USAGE: weist auf einen nicht autorisierten Benutzer hin. # Melden Sie sich als Benutzer test0 mysql -utest0 -ptest0111 pydb bei der pydb-Datenbank an. Die Fehlermeldung zeigt an, dass der Vorgang nicht autorisiert ist: [FEHLER 1044 (42000): Zugriff für Benutzer „test0“@„localhost“ auf Datenbank „pydb“ verweigert] # Verwenden Sie den Root-Benutzer, um dem Benutzer test0 Berechtigungen zu erteilen: Gewähren Sie dem durch „Passwort“ identifizierten „Benutzernamen“@„IP-Adresse“ mit der Gewährungsoption alle Berechtigungen für „Datenbankname“.„Tabellenname“. # Richten Sie beispielsweise den lokalen Client so ein, dass er auf diesen Benutzer zugreift: mysql> gewähre 'test0'@'localhost', identifiziert durch 'test0111', alle Privilegien auf pydb.* mit der Grant-Option; # Richten Sie jeden Remote-Client so ein, dass er auf diesen Benutzer zugreifen kann: mysql> gewähre 'test0'@'%' alle Berechtigungen für pydb.* mit der Grant-Option; # Berechtigungen aktualisierenmysql> Berechtigungen leeren; # Lokale Berechtigungen anzeigen, Zuweisungen für „test0“@„localhost“ anzeigen; Ausgabe: [GRANT ALL PRIVILEGES ON `pydb`.* TO 'test0'@'localhost' WITH GRANT OPTION] # Remote-Berechtigungen anzeigen, Zuweisungen für „test0“@„%“ anzeigen; Ausgabe: [GRANT ALL PRIVILEGES ON `pydb`.* TO 'test0'@'%' WITH GRANT OPTION] Die Berechtigungen wurden erfolgreich hinzugefügt. Jetzt haben sowohl der lokale Client als auch der Remote-Client die Berechtigung, sich beim Benutzer test0 anzumelden und alle Tabellen unter der pydb-Datenbank zu bedienen. # Erklärung des Autorisierungsbefehls „grant“: Autorisierungsschlüsselwörter „alle Berechtigungen“: Autorisierungstyp, „alle Berechtigungen“ bedeutet „alle Berechtigungen“. Sie können auch bestimmte Berechtigungen wie „Auswählen“, „Aktualisieren“, „Erstellen“, „Löschen“ usw. zuweisen. ein: Gibt an, für welche Tabelle in welcher Datenbank die Berechtigung erteilt werden soll. *.* bedeutet alle Tabellen in allen Datenbanken. an: gibt an, welchem Benutzer die Berechtigung erteilt werden soll, im Format „Benutzername“@„Anmelde-IP oder Domänenname“. localhost bedeutet, dass sich der lokale Client bei diesem Benutzer anmelden kann, % bedeutet, dass sich jeder Host-Client bei diesem Benutzer anmelden kann. Wenn eine bestimmte IP-Adresse konfiguriert ist, z. B. „Benutzername“@„192.168.113“, bedeutet dies, dass sich nur der Host-Client 192.168.113 bei diesem Benutzer anmelden darf. Sie können auch IP-Segmente wie „Benutzername“@„192.168.%“ konfigurieren. Identifiziert durch: Legen Sie das Anmeldekennwort für diesen Benutzer fest. Sie können sich auch dafür entscheiden, es nicht festzulegen. mit Erteilungsoption: Gibt an, dass dieser Benutzer seine Berechtigungen anderen Benutzern erteilen darf. Hinweis: Die durch Erteilung hinzugefügten Berechtigungen werden automatisch überlagert. Wenn Sie beispielsweise zuerst die Auswahlberechtigung und dann die Einfügeberechtigung hinzufügen, verfügt der Benutzer sowohl über die Auswahl- als auch die Einfügeberechtigung. Wenn der Benutzer bereits über alle Berechtigungen verfügt und eine ausgewählte Berechtigung hinzugefügt wird, verfügt der Benutzer weiterhin über alle Berechtigungen. # Entfernen Sie die Berechtigungen, widerrufen Sie das Einfügen von „Datenbankname“. „Tabellenname“ von „Benutzername“@„IP-Adresse“; # So entfernen Sie beispielsweise die Einfügeberechtigung: Einfügen in pydb.* von „test0“@„localhost“ widerrufen; # Zum Beispiel alle Berechtigungen: widerrufe alles auf pydb.* von „test0“@„localhost“; # Berechtigungen aktualisierenmysql> Berechtigungen leeren; Alle Berechtigungen umfassen: [AUSWÄHLEN, EINFÜGEN, AKTUALISIEREN, LÖSCHEN, ERSTELLEN, LÖSCHEN, REFERENZEN, INDEX, ÄNDERN, TEMPORÄRE TABELLEN ERSTELLEN, TABELLEN SPERREN, AUSFÜHREN, ANSICHT ERSTELLEN, ANSICHT ANZEIGEN, ROUTINE ERSTELLEN, ROUTINE ÄNDERN, EREIGNIS, AUSLÖSER] Im praktischen Einsatz empfiehlt es sich nicht, alle Berechtigungen zu erteilen. Erteilen Sie nur die Berechtigungen, die Sie benötigen. Einzelheiten zu Berechtigungen finden Sie in der offiziellen MySQL-Beschreibung: http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html 3.5 Benutzer-, Datenbank- und Tabellenbeziehungsdiagramm 4. Datenbanksicherung und -wiederherstellung# Alle Datenbanken sichern: mysqldump -uroot -p --all-databases > all.db # Sichern Sie die angegebene Datenbank: mysqldump -uroot -p pydb > test1.db # Sichern Sie einige Tabellen der angegebenen Datenbank mysqldump -uroot -p pydb Tabellenname 1 Tabellenname 2 Tabellenname n > test2.db # Sichern Sie die angegebene Datenbank mit Ausnahme bestimmter Tabellen (mit Ausnahme der Tabellen 1 und 2). mysqldump -uroot -p pydb --ignore-table=pydb.Tabelle1 --ignore-table=pydb.Tabelle2 > test3.db # Testdatenbank erstellen, Datenbanktest erstellen, charset=utf8; # Stellen Sie die Sicherungsdaten wieder her. Die importierte Datenbank muss vorhanden sein. mysql -u root -p test < test1.db 5. Navicat-Remoteverbindungsdatenbank5.1 Ändern der lokalen Abhöradresse # Überwachung anzeigen netstat -an |grep 3306 # Die aktuelle Abhöradresse ist die lokale Loopback-Adresse: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN # Remote-Client kann nicht zugreifen. # Ändern Sie die lokale Abhöradresse von MySQL. sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf Ändern Sie den Wert der Bind-Adresse in Bind-Adresse = 0.0.0.0, speichern Sie die Datei und beenden Sie das Programm. Sie können es auch in die lokale IP-Adresse ändern, zum Beispiel: bind-address = 192.168.111.10 # Starten Sie die MySQL-Datenbank neu. sudo service mysql restart # Testen Sie das Netzwerk auf dem Remote-Client-Rechner. Wenn Telnet erfolgreich ist, bedeutet dies, dass das Netzwerk in Ordnung ist. Telnet 192.168.111.10 3306 # Hinweis: Alibaba Cloud Server hat Portbeschränkungen. Sie müssen Portzugriffsregeln konfigurieren, um Port 3306 zu öffnen. URL: [https://homenew.console.aliyun.com/](https://homenew.console.aliyun.com/) 5.2 Navicat-Fernverbindung Laden Sie Navicat herunter und installieren Sie es selbst. Wenn die Verbindung fehlschlägt, führen Sie den folgenden Test durch: [192.168.111.10] ist die IP-Adresse Ihres MySQL-Servers 1. Testen Sie Netzwerk und Port Telnet 192.168.111.10 3306 2. Überprüfen Sie die Server-Abhöradresse sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf Bindeadresse = 0.0.0.0 3. Überprüfen Sie, ob der Benutzer über Fernzugriffsrechte und das Plug-In zur Kennwortüberprüfung verfügt. Wählen Sie Benutzer, Host und Plug-In vom Benutzer aus. Der Wert des Login-Benutzers Host: % oder Remote-Client-IP Wert des Login-Benutzer-Plugins: mysql_native_password Das Passwortüberprüfungs-Plugin für MySQL 5.7 ist mysql_native_password # Benutzerzugriffsrechte hinzufügen und Plugin zur Kennwortüberprüfung einrichten. Gewähren Sie „test0“@„%“, identifiziert mit mysql_native_password durch „test0111“, alle Berechtigungen für pydb.*. # Wenn die Remote-Zugriffsberechtigung des Benutzers vorhanden ist und das Plug-In zur Kennwortüberprüfung falsch ist, können Sie das Plug-In zur Kennwortüberprüfung nur ändern: „alter user ‚test0‘@‚%‘ identified with mysql_native_password by ‚111222333‘;“ # Berechtigungen aktualisierenmysql> Berechtigungen leeren; 6. Deinstallieren Sie MySQL# MySQL deinstallieren: 1.sudo apt-get autoremove mysql* --purge 2.sudo apt-get remove mysql-server 3.sudo apt-get entfernen mysql-common # Restdaten bereinigen sudo dpkg -l |grep mysql|awk '{print $2}' |sudo xargs dpkg -P sudo rm -rf /etc/mysql/ sudo rm -rf /var/lib/mysql # Überprüfen Sie, ob der Löschvorgang abgeschlossen ist, whereis mysql sudo find / -name mysql Ich habe alle in diesem Blogbeitrag aufgezeichneten Vorgänge selbst durchgeführt. Ich fühle mich geehrt, wenn ich damit Freunden in Not helfen kann. Wenn Fehler vorhanden sind, können Sie diese gerne korrigieren. Dies ist das Ende dieses Artikels zur Installation und Konfiguration von MySql5.7 unter Ubuntu 20.04. Weitere Informationen zur Installation von MySql5.7 unter Ubuntu 20.04 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: js regulärer Ausdruck Lookahead und Lookbehind und nicht erfassende Gruppierung
>>: Docker startet Redis und legt das Passwort fest
Inhaltsverzeichnis Logische Schichtung Trennen Si...
Inhaltsverzeichnis planen Abhängigkeiten installi...
Inhaltsverzeichnis 1 Aktuellen Datenbankinhalt ei...
In diesem Artikel wird der spezifische Code für d...
Inhaltsverzeichnis 1. Bedienelemente 1.1. Element...
Vorwort: Ich bin auf die Anforderung gestoßen, be...
In diesem Artikel wird der spezifische Code zur I...
In allgemeinen Anwendungen verwenden wir die Type...
Dieser Artikel basiert auf MySQL 8.0 Dieser Artik...
Inhaltsverzeichnis 1. Komponentenorganisation 2. ...
Kürzlich wurde beim Ausführen eines alten RN-Proj...
Einführung Die Standardquelle von Ubuntu ist kein...
Crontab installieren yum install crontabs CentOS ...
Das im Projekt aufgetretene Layoutproblem unregel...
Inhaltsverzeichnis UI-Design Echarts Beispieleffe...