Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Richten Sie MySQL 8 aus dem binären Tarball ein

In diesem Artikel werden wir die binäre Tarball-MySQL-Installation besprechen. Wir werden die Installation von MySQL 8 mit binären Tarballs besprechen und MySQL 8 unter CentOS 7 mit binären Tarballs installieren. Die Installation auf Basis von binären Tarballs hat ihre eigenen Vor- und Nachteile, wir werden darauf eingehen. Die Installation von binären Tarballs ist unabhängig von der Linux-Distribution oder dem von der Distribution verwendeten Init-System. Dies bedeutet, dass die gleiche Installationsmethode beispielsweise auf RPM- und totenbasierten Systemen funktioniert, aber auch auf exotischeren Distributionen wie Gen 2. Es ist auch ein binärer Tarball für macOS verfügbar und der Installationsvorgang ist nicht viel anders, diese Methode erfordert ein manuelleres Wort. Das Skript mysql_install_db war in MySQL 5.7 veraltet und wurde aus MySQL 8 entfernt. Die anfängliche Datenbankerstellung kann mit dem Befehl mysqld –initialize erfolgen. Jetzt, da wir MySQL manuell installieren, verwenden wir den Befehl mysqld –initialize, um eine leere Datenbank zu erstellen.

Lassen Sie uns zuerst etwas aufräumen. Wir werden die sehr alte Version von mariadb-libs entfernen, die my.cnf bereitstellt, die mit unserer kollidieren würde.

Mariadb-Bibliotheken entfernen:

[[email protected] ~]# sudo yum remove -y mariadb-libs

Laden Sie den Quell-Tarball der MySQL-Community-Umfrage 8.0 herunter

[[email protected] ~]# curl -L -O https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar .gz% Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit CurrentDload Hochladen Gesamt ausgegeben Verbleibende Geschwindigkeit 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0100 575M 100 575M 0 0 7726k 0 0:01:16 0:01:16 --:--:-- 8516k
[[email protected] ~]# ll-rw-r--r--. 1 root root 603019898 23. Juli 10:31 mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

Der Tarball wird nicht heruntergeladen, also entpacken wir ihn nach usr/local

[[email protected] ~]# sudo tar xvfz mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

Ausfüllen der Voraussetzungen

Lassen Sie uns libaio installieren.

[[email protected] ~]# sudo yum -y install libaio
Erstellen Sie eine MySQL-Gruppe, dies wird normalerweise von den Paketen erledigt, aber da wir es jetzt manuell vom binären Tarball installieren, müssen wir es tun.
[[email protected] ~]# sudo groupadd mysql

Lassen Sie uns einen MySQL-Benutzer für Sie erstellen

[[email protected] ~]# sudo useradd -r -g mysql -s /bin/false mysql

Überprüfen Sie, ob der MySQL-Benutzer vorhanden ist

[[email protected] ~]# getent passwd | grep mysqlmysql:x:988:1001::/home/mysql:/bin/false

habe /usr/local und erstelle einen Symlink und überprüfe ihn dann

[[email protected] ~]# cd /usr/local[[email protected] local]# sudo ln -s mysql-8.0.11-linux-glibc2.12-x86_64 mysql[[email protected] local]# ls -la mysqllrwxrwxrwx. 1 root root 35 Jul 23 15:08 mysql -> mysql-8.0.11-linux-glibc2.12-x86_64

Erstellen Sie ein MySQL-Dateiverzeichnis, das den Besitz und die Berechtigungen des Datensatzes enthält, während es in /usr/local/

steht
[[email protected] local]# sudo mkdir mysql-files[[email protected] local]# sudo chown mysql:mysql mysql-files[[email protected] local]# sudo chmod 750 mysql-files

Initialisieren Sie MySQL

Gehen Sie in das mysql-Verzeichnis und initialisieren Sie mysqld, in früheren Versionen hieß dies mysql_installed_db

[[email protected] local]# cd mysql[[email protected] mysql]# sudo ./bin/mysqld --initialize --user=mysql2020-07-23T12:12:10.028247Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) Initialisierung des Servers läuft als Prozess 250142020-07-23T12:12 :15.470538Z 5 [Hinweis] [MY-010454] [Server] Ein temporäres Passwort wird für [email protected] generiert:Hqn+jK6lfzNS2020-07-23T12:12:18.875370Z 0 [System] [MY-013170] [Server ] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) Initialisierung des Servers abgeschlossen

Beachten Sie, dass das temporäre Root-Passwort generiert wird, das in meinem Fall ([email protected]:Hqn+jK6lfzNS)

lautet

Kopieren Sie das Init-Skript aus den Support-Dateien nach /etc/init.d

[[email protected] mysql]# sudo cp ./support-files/mysql.server /etc/init.d/

Starten Sie den MySQL-Server mit der gerade kopierten Init-Datei

[[email protected] mysql]# sudo /etc/init.d/mysql.server startStarting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.. ERFOLG! 

Stellen Sie nun eine Verbindung zu mysql her, indem Sie das zuvor generierte temporäre Passwort angeben

[[email protected] mysql]# ./bin/mysql -uroot -pEnter password:Willkommen beim MySQL-Monitor. Befehle enden mit; oder \g.Ihre MySQL-Verbindungs-ID ist 8Server-Version:8.0.11Copyright (c) 2000, 2018, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer verbundenen Unternehmen. Andere Namen können Warenzeichen ihrer jeweiligen Eigentümer sein. Geben Sie 'help;' oder '\h' für Hilfe. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.mysql>

Lassen Sie uns das temporäre Passwort für den Root-Benutzer ändern.

mysql> alter user 'root'@'localhost' identifiziert durch 'My_root_pass1!';Abfrage OK, 0 Zeilen betroffen (0,07 Sek.)

Überprüfen Sie den Speicherort der Socket-Datei:

mysql> zeigt Variablen wie 'socket';+---------------+-----------------+| Variablenname | Wert |+---------------+-----------------+| Steckdose | /tmp/mysql.sock |+---------------+-----------------+1 Zeile im Satz (0,01 Sek.) 

Um nicht immer den Pfadnamen von Client-Programmen eingeben zu müssen, wenn Sie mit MySQL arbeiten, können Sie das Verzeichnis /usr/local/mysql/bin zu Ihrer PATH-Variablen hinzufügen:

[[email protected] mysql]# export PATH=$PATH:/usr/local/mysql/bin
[[email protected] mysql]# ps -ef | grep mysqlroot 25130 1 0 15:16 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr /local/mysql/data/localhost.localdomain.pidmysql 25215 25130 1 15:16 pts/1 00:00:42 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.localdomain.err --pid-file=/usr/local /mysql/data/localhost.localdomain.pidroot 26171 21375 0 16:21 pts/1 00:00:00 mysql -uroot -px xxxxxxxxxxxxroot 26191 25365 0 16:23 pts/2 00:00:00 grep --color=auto mysq

No