Detaillierte Schritte und Methoden zur Problemlösung zur Installation von MySQL 8.0.19 unter Linux

Detaillierte Schritte und Methoden zur Problemlösung zur Installation von MySQL 8.0.19 unter Linux

Ich habe vor Kurzem einen Tencent-Cloud-Server gekauft und eine Umgebung aufgebaut.

Dieser Hinweis dient der Erstinstallation von MySQL auf einem sauberen System, auf dem MySQL noch nie installiert war. Legen Sie das Installationsverzeichnis und das Datendateiverzeichnis selbst fest.

Linux-Systemversion: CentOS 7.3 64-Bit

Version der Installationsquelldatei: mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

MySQL-Installationsort: /software/mysql

Speicherort der Datenbankdateidaten: /data/mysql

Hinweis: Um Verwirrungen vorzubeugen, wird hier der absolute Pfad zur Ausführung des Befehls verwendet.

Mit Ausnahme der # im Dateiinhalt sind alle # hier Linux-Befehle

>mysql ist der MySQL-Befehl

Schritt:

1. Erstellen Sie den Ordner Software und die Datenbankdatendatei /data/mysql im Stammverzeichnis

#mkdir /software/
#mkdir /data/mysql

2. Laden Sie die Datei mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz nach /software hoch.

--------------------

Hier habe ich die Datei mysql-8.0.19-linux-glibc2.12-x86_64.tar mit Router und Test heruntergeladen, also muss ich sie entpacken.

--------------------
#cd /software/
#xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
#tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar

3. Ändern Sie den Namen des entpackten Ordners

#mv /software/mysql-8.0.19-linux-glibc2.12-x86_64/ /software/mysql

4. Erstellen Sie eine MySQL-Benutzergruppe und einen MySQL-Benutzer

#groupadd mysql

#useradd -r -g mysql mysql

5. Ordnen Sie den MySQL-Benutzer der MySQL-Benutzergruppe zu

#chown -R mysql:mysql /software/mysql/
#chown -R mysql:mysql /data/mysql/
#chown -R mysql /software/mysql/
#chown -R mysql /data/mysql

6. Ändern Sie die Berechtigungen des MySQL-Installationsordners mysql/

#chmod -R 755 /software/mysql/

7. Installieren Sie das libaio-Abhängigkeitspaket. Das System wird mit diesem Abhängigkeitspaket geliefert, sodass es nicht installiert werden muss. Das integrierte Abhängigkeitspaket meldet jedoch einen Fehler

Überprüfen Sie, ob libaio-Abhängigkeitspakete heimlich übertragen werden

#yum search libaio

Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren

#yum install libaio

8. MySQL-Befehl initialisieren

#cd /software/mysql/bin
#./mysqld --user=mysql --basedir=/software/mysql --datadir=/data/mysql --initialize

Achten Sie bei der Ausführung des obigen Befehls besonders auf eine Zeile

[Hinweis] Für root@localhost wird ein temporäres Passwort generiert: o*s#gqh)F4Ck

root@localhost: gefolgt vom temporären Passwort für die Anmeldung bei der MySQL-Datenbank. Das von jeder Installation generierte temporäre Passwort ist unterschiedlich.

Wenn der Initialisierungsfehler wie folgt lautet:

Fehler beim Laden gemeinsam genutzter Bibliotheken: libnuma.so.1: Gemeinsam genutztes Objekt kann nicht geöffnet werden

Da libnuma in 32 Bit installiert ist, benötigen wir hier 64 Bit und können es lösen, indem wir die folgende Anweisung ausführen

#yum install numactl.x86_64

MySQL-Befehl nach der Ausführung neu initialisieren

9. Starten Sie den MySQL-Dienst

# sh /software/mysql/support-files/mysql.server start

Der obige Befehl zum Starten des MySQL-Dienstes meldet einen Fehler, da die MySQL-Konfigurationsdatei nicht geändert wurde. Der Fehlerinhalt lautet wie folgt:

./support-files/mysql.server: Zeile 239: my_print_defaults: Befehl nicht gefunden

./support-files/mysql.server: Zeile 259: cd: /usr/local/mysql: Keine solche Datei oder kein solches Verzeichnis

FEHLER beim Starten von MySQL! MySQL-Server (/usr/local/mysql/bin/mysqld_safe) konnte nicht gefunden werden

10. Ändern Sie die Mysql-Konfigurationsdatei

#vim /software/mysql/support-files/mysql.server

Vor der Änderung

wenn test -z "$basedir"
Dann
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
wenn test -z "$datadir"
Dann
datadir=/usr/local/mysql/data
fi
sbindir=/usr/local/mysql/bin
libexecdir=/usr/local/mysql/bin
anders
bindir="$basedir/bin"
wenn test -z "$datadir"
Dann
Datenverzeichnis="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi

Nach

wenn test -z "$basedir"
Dann
basedir=/software/mysql
bindir=/software/mysql/bin
wenn test -z "$datadir"
Dann
Datenverzeichnis=/Daten/MySQL
fi
sbindir=/software/mysql/bin
libexecdir=/software/mysql/bin
anders
bindir="$basedir/bin"
wenn test -z "$datadir"
Dann
Datenverzeichnis="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi

Speichern und beenden

#cp /software/mysql/support-files/mysql.server /etc/init.d/mysqld

#chmod 755 /etc/init.d/mysqld

11. Ändern Sie die Datei my.cnf

#vi /etc/my.cnf

Kopieren Sie den folgenden Inhalt, um die aktuelle my.cnf-Datei zu ersetzen

[Kunde]
kein Piepton
Socket =/software/mysql/mysql.sock
#Rohr
# socket=0.0
Port = 3306
[mysql]
#Das ursprüngliche utf8 zeigt auf UTF8MB3. Die nachfolgende Version muss auf UTF8MB4 geändert werden. Machen wir das in einem Schritt. default-character-set=UTF8MB4
[mysqld]
basedir=/software/mysql
Datenverzeichnis=/Daten/MySQL
Port = 3306
pid-Datei=/software/mysql/mysqld.pid
#Grant-Tabellen überspringen
Namensauflösung überspringen
Socket = /software/mysql/mysql.sock
Zeichensatzserver = utf8
Standard-Speicher-Engine = INNODB
explizite_Voreinstellungen für_Zeitstempel = true
# Server-ID.
Server-ID = 1
max_verbindungen=2000
#query_cache_size wurde in Version 8.0 entfernt, daher kommentieren Sie #query_cache_size=0
Tabelle_öffnen_Cache=2000
tmp_table_size=246M
Thread-Cache-Größe = 300
#Begrenzen Sie die für jeden Datenbank-Thread verwendete Stapelgröße. Die Standardeinstellung ist für die meisten Anwendungen ausreichend thread_stack = 192k
Schlüsselpuffergröße = 512 M
Lesepuffergröße = 4 M
read_rnd_buffer_size=32M
innodb_data_home_dir = /data/mysql
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=16M
innodb_buffer_pool_size=256M
innodb_log_file_size=128M
innodb_thread_concurrency=128
innodb_autoextend_increment=1000
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
Spülzeit = 0
Verbindungspuffergröße = 128 M
max_allowed_package=1024M
max_connect_errors=2000
Open_files_limit=4161
#query_cache_type wurde in Version 8.0 entfernt, daher kommentieren Sie #query_cache_type=0
Sortierpuffergröße = 32 M
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
#Die Cache-Größe für Batch-Einfügedaten kann die Einfügeeffizienz effektiv verbessern. Der Standardwert beträgt 8 MB.
bulk_insert_buffer_size = 64 MB
interaktives_Timeout = 120
Wartezeitüberschreitung = 120
log-bin-trust-function-creators=1
sql_mode=KEIN_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#
# alle Dateien aus dem Konfigurationsverzeichnis einbinden
#
!includedir /etc/my.cnf.d

Speichern und beenden

12. MySQL starten

#/etc/init.d/mysqld start

Die neue Version des Installationspakets meldet einen Fehler. Der Fehlerinhalt lautet wie folgt:

MySQL.Logging wird in „/data/mysql/SZY.err“ gestartet.
2018-07-02T10:09:03.779928Z mysqld_safe Die Datei /usr/local/mysql/bin/mysqld
existiert nicht oder ist nicht ausführbar. Bitte wechseln Sie zur MySQL-Installation
Verzeichnis und starten Sie dieses Skript von dort aus wie folgt neu:
./bin/mysqld_safe&
Weitere Informationen finden Sie unter http://dev.mysql.com/doc/mysql/en/mysqld-safe.html.
FEHLER! Der Server wurde beendet, ohne die PID-Datei (/software/mysql/mysqld.pid) zu aktualisieren.

Denn die neue Version des MySQL Secure Boot-Installationspakets erkennt nur den Pfad /usr/local/mysql.

Lösung:

Methode 1: Erstellen Sie einen Softlink

Beispiel

#cd /usr/local/mysql
#ln -s /sofware/mysql/bin/myslqd mysqld

Methode 2: Ändern Sie die Datei mysqld_safe (dies wird von Studenten mit Zwangsstörungen empfohlen, und ich verwende es auch)

# vim /software/mysql/bin/mysqld_safe

Ändern Sie alles /usr/local/mysql in /software/mysql

Speichern und beenden. (Sie können diese Datei kopieren, ändern und dann ersetzen)

13. Melden Sie sich bei MySQL an

Ich kann mich hier nicht anmelden, ich bin blockiert, Fehler wie dieser:

FEHLER 1045 (28000): Zugriff für Benutzer „root“@„localhost“ verweigert (mit Kennwort: NEIN).

Siehe https://cloud.tencent.com/developer/article/1188636

Ändern Sie diesen Vorgang wie folgt:

1. Stoppen Sie die MySQL-Datenbank

/etc/init.d/mysqld stop

(Oder beenden Sie den Prozess einfach mit kill -9 [PID]!)

2. Führen Sie den folgenden Befehl aus

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

3. Melden Sie sich als Root bei der MySQL-Datenbank an

mysql -u root mysql

4. Aktualisieren Sie das Root-Passwort

Für die neueste Version von MySQL verwenden Sie bitte das folgende SQL:

mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT MIT mysql_native_password DURCH 'newpassword';

5. Berechtigungen aktualisieren

mysql> FLUSH PRIVILEGES;

6. Beenden Sie MySQL

mysql> beenden

7. Starten Sie MySQL neu

/etc/init.d/mysqld restart

8. Melden Sie sich erneut mit dem Root-Benutzer bei MySQL an

mysql -uroot -p
 Passwort eingeben: <Geben Sie das neue Passwort newpassword ein>
---------------------------------------------------------------------------------------------------------------------------
#/software/mysql/bin/mysql -u root –p

14. Geben Sie ein temporäres Passwort ein. Das temporäre Passwort ist der Inhalt nach dem 8. root@localhost:

15. Ändern Sie das MySQL-Anmeldekennwort

>mysql setze Passwort=Passwort('root');
>mysql gewährt root@'%', identifiziert durch 'root', alle Privilegien für *.*;
>MySQL-Flush-Berechtigungen;

16. Abgeschlossen. Zu diesem Zeitpunkt lautet der MySQL-Anmeldename root und das Anmeldekennwort root

Zusammenfassen

Dies ist das Ende dieses Artikels über die detaillierten Schritte und Problemlösungsmethoden zur Installation von MySQL 8.0.19 unter Linux. Weitere Informationen zur Installation von MySQL 8.0.19 unter Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Diagramm des Tutorials zur schnellen Installation und Konfiguration des Linux-Systems MySQL8.0.19
  • Tutorial-Diagramm zur Installation von mysql8.0.18 unter Linux (Centos7)
  • Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.18 (Linux)
  • mysql-5.7.28 Installations-Tutorial unter Linux
  • Detailliertes Tutorial zur Installation einer MySQL-Datenbank in einer Linux-Umgebung

<<:  Beispiel für die JavaScript-Funktion „CollectGarbage“

>>:  Zusammenfassung der Linux Logical Volume Management (LVM)-Nutzung

Artikel empfehlen

Mysql löscht doppelte Daten, um die kleinste ID-Lösung beizubehalten

Suchen Sie online nach doppelten Daten und behalt...

WeChat-Applet implementiert Anmeldeschnittstelle

Die Anmeldeoberfläche des WeChat-Applets ist zu I...

Vue implementiert eine einfache Produktion von Zählern

In diesem Artikelbeispiel wird der einfache Imple...

React-Diagramm Serialisierung JSON Interpretation Fallanalyse

Das Ziel dieses Dokuments ist es, die JSON-Serial...

Grundlegendes Handbuch für Webdesign 216 Websichere Farben

Die Farbdarstellung auf einer Webseite wird von ve...

Eine kurze Erläuterung temporärer MySQL-Tabellen und abgeleiteter Tabellen

Abgeleitete Tabellen Wenn die Hauptabfrage eine a...

Nginx kompiliert nginx - neues Modul hinzufügen

1. Vorhandene Module anzeigen /usr/local/nginx/sb...

Eine detaillierte Einführung in den Lade- und Analyseprozess von HTML-Seiten

Die Reihenfolge, in der der Browser HTML lädt und ...

MySQL-Tabellenfeld Zeiteinstellung Standardwert

Anwendungsszenario In der Datentabelle muss die A...

Detaillierte Erklärung der Verwendung von SetUp- und Reactive-Funktionen in Vue3

1. Wann soll setUp ausgeführt werden? Wir alle wi...