Die offizielle Version 8.0.11 von MySQL 8 wurde veröffentlicht. Offiziellen Angaben zufolge ist MySQL 8 doppelt so schnell wie MySQL 5.7 und bietet zahlreiche Verbesserungen und eine schnellere Leistung! Wer ist letztlich der Beste? Siehe bitte: MySQL 5.7 vs. 8.0, welches hat die bessere Leistung? MySQL 8.0-Installation (YUM-Methode) 1. Löschen Sie zunächst die Systemstandardversion oder andere Versionen von MySQL, die möglicherweise zuvor installiert waren. # für i in $(rpm -qa|grep mysql);mache rpm -e $i --nodeps;fertig # rm -rf /var/lib/mysql && rm -rf /etc/my.cnf 2. Installieren Sie das Yum-Repository von Mysql8.0 mysql80-community-release-el7-1.noarch.rpm # yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 3. Installieren Sie MySQL 8.0 # yum installiere mysql-community-server #Starten Sie den MySQL-Server und den automatischen Start von MySQL# systemctl start mysqld # systemctl mysqld aktivieren # systemctl status mysqld [root@localhost opt]# netstat -lantp | grep 3306 tcp6 0 0 :::33060 :::* LISTEN 25431/mysqld tcp6 0 0 :::3306 :::* LISTEN 25431/mysqld [root@localhost opt]# ps -aux | grep mysqld mysql 25431 0,8 17,2 1776932 350232 ? SSL 16:24 0:01 /usr/sbin/mysqld root 25672 0,0 0,0 112828 980 Punkte/1 S+ 16:28 0:00 grep --color=auto mysqld Anmeldefehler Überspringen Sie die Kennwortanmeldung, fügen Sie Skip-Grant-Tabellen hinzu und starten Sie den MySQL-Dienst neu. [root@localhost opt]# vim /etc/my.cnf [mysqld] Skip-Grant-Tabellen [root@localhost opt]# systemctl restart mysqld [root@localhost opt]#mysql Verwenden Sie SQL, um das Root-Passwort zu ändern Rufen Sie das Terminal auf, geben Sie den Befehl mysql -u root -p ein und drücken Sie die Eingabetaste. Wenn Sie ein Kennwort eingeben müssen, drücken Sie einfach die Eingabetaste, um sich ohne Kennwort bei der Datenbank anzumelden. mysql> Benutzer aktualisieren, Passwort festlegen=Passwort("Ihr neues Passwort"), wobei Benutzer="root"; Oder mysql> setze Passwort für 'Benutzername'@'Host' = Passwort('neuesPasswort') mysql> Berechtigungen leeren; mysql> beenden Beachten Wenn bei der Ausführung dieses Schritts der Fehler FEHLER 1290 (HY000): Der MySQL-Server wird mit der Option --skip-grant-tables ausgeführt und kann diese Anweisung daher nicht ausführen, auftritt. Führen Sie den Befehl zum Leeren der Berechtigungen und dann diesen Befehl aus. Hinweis: Wenn bei der Ausführung dieses Schritts der Fehler ERROR 1290 (HY000): Der MySQL-Server wird mit der Option --skip-grant-tables ausgeführt und kann diese Anweisung daher nicht ausführen, auftritt. Führen Sie den Befehl zum Leeren der Berechtigungen und dann diesen Befehl aus. 4. Nach der ersten Anmeldung mit dem Standardkennwort müssen Sie das Kennwort zurücksetzen Überprüfen Sie das Standardkennwort. Das Standardkennwort lautet „e53xDalx.*dE“. [root@DB-node01 ~]# grep 'temporäres Passwort' /var/log/mysqld.log 2019-03-06T01:53:19.897262Z 5 [Hinweis] [MY-010454] [Server] Ein temporäres Passwort wird für root@localhost generiert: e53xDalx.*dE [root@DB-node01 ~]# mysql -pe53xDalx.*dE ............ mysql> Version auswählen(); FEHLER 1820 (HY000): Sie müssen Ihr Kennwort mit der Anweisung ALTER USER zurücksetzen, bevor Sie diese Anweisung ausführen. Die Fehlermeldung besagt, dass das ursprüngliche Passwort zurückgesetzt werden muss. Beginnen Sie nun mit dem Zurücksetzen des MySQL-Anmeldepassworts (beachten Sie, dass Sie zur MySQL-Datenbank wechseln und use mysql verwenden müssen). mysql> mysql verwenden; FEHLER 1820 (HY000): Sie müssen Ihr Kennwort mit der Anweisung ALTER USER zurücksetzen, bevor Sie diese Anweisung ausführen. mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456'; FEHLER 1819 (HY000): Ihr Passwort erfüllt nicht die aktuellen Richtlinienanforderungen Dies hängt eigentlich mit dem Wert von validate_password_policy zusammen. MySQL 8.0 hat den Konfigurationsnamen in Bezug auf validate_password_policy geändert, was sich von MySQL 5.7 etwas unterscheidet. mysql> setze global validate_password.policy=0; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> setze globales validate_password.length=1; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) Ändern Sie dann das Passwort mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456'; Abfrage OK, 0 Zeilen betroffen (0,05 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) Beenden Sie und melden Sie sich erneut bei MySQL mit dem neuen Passwort an #mysql -p123456 ........... mysql> Version auswählen(); +-------------+ | version() | +-------------+ | 8.0.15 | +-------------+ 1 Zeile im Satz (0,00 Sek.) Service-Port anzeigen mysql> zeige globale Variablen wie „Port“; +---------------+-------+ | Variablenname | Wert | +---------------+-------+ | Hafen | 3306 | +---------------+-------+ 1 Zeile im Satz (0,01 Sek.) Zeigen Sie die Autorisierungsinformationen für die MySQL-Verbindung an mysql> wähle Host, Benutzer, Passwort aus mysql.user; FEHLER 1054 (42S22): Unbekannte Spalte „Passwort“ in „Feldliste“ Das Obige ist der Ansichtsbefehl für MySQL 5.6 und darunter. In der Datenbank nach MySQL 5.7 gibt es in der Tabelle mysql.user kein Kennwortfeld. Das Kennwortfeld wurde in authentication_string geändert. mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user aus; +--------------+------------------+----------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +--------------+------------------+----------------------------------------------------------+ | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | lokaler Host | root | $A$005${7J0=4Dc7Jym8eI/FU4jimKWFvkD9XmoAkF1ca5.Un0bc6zgmPtU.0 | +--------------+------------------+----------------------------------------------------------+ 4 Zeilen im Satz (0,00 Sek.) mysql8.0-Befehl zum Ändern des Benutzerkennworts mysql> mysql verwenden; mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456'; mysql> Berechtigungen leeren; MySQL 8.0-Installation (Binärmodus) 1. Löschen Sie zunächst die Systemstandardversion oder andere Versionen von MySQL, die möglicherweise zuvor installiert waren. [root@mysql8-node ~]# für i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;fertig [root@mysql8-node ~]# rm -rf /var/lib/mysql && rm -rf /etc/my.cnf 2. Installieren Sie die erforderlichen Softwarepakete [root@mysql8-node ~]# yum -y installiere libaio [root@mysql8-node ~]# yum -y installiere Net-Tools 3. Laden Sie MySQL 8.0.12 herunter und installieren Sie es [root@mysql8-node ~]# groupadd mysql [root@mysql8-node ~]# useradd -g mysql mysql [root@mysql8-node ~]# cd /usr/local/src/ [root@mysql-node src]# ll -rw-r--r-- 1 root root 620389228 22. August 2018 mysql8.0.12_bin_centos7.tar.gz [root@mysql-node src]# tar -zvxf mysql8.0.12_bin_centos7.tar.gz [root@mysql-node src]# mv mysql /usr/local/ [root@mysql-node src]# chown -R mysql.mysql /usr/local/mysql [root@mysql-node src]# vim /home/mysql/.bash_profile export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH [root@mysql-node src]# Quelle /home/mysql/.bash_profile [root@mysql-node src]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile [root@mysql-node src]# Quelle /etc/Profil 4. Erstellen Sie ein Datenverzeichnis [root@mysql-node src]# mkdir -p /data/mysql/{data,log,binlog,conf,tmp} [root@mysql-node src]# chown -R mysql.mysql /data/mysql 5. MySQL konfigurieren [root@mysql-node src]# su - mysql [mysql@mysql-node ~]$ vim /data/mysql/conf/my.cnf [mysqld] Kleinbuchstaben-Tabellennamen = 1 Benutzer = MySQL Server-ID = 1 Port = 3306 Standardzeitzone = '+08:00' enforce_gtid_consistency = EIN gtid_mode = EIN binlog_checksum = keine Standardauthentifizierungs-Plugin = natives MySQL-Passwort Datenverzeichnis = /Daten/MySQL/Daten pid-Datei = /data/mysql/tmp/mysqld.pid Socket = /data/mysql/tmp/mysqld.sock tmpdir = /Daten/mysql/tmp/ skip-name-resolve = EIN Open_files_limit = 65535 table_open_cache = 2000 ####################innodb########################### innodb_data_home_dir = /Daten/mysql/Daten innodb_data_file_path = ibdata1:512M;ibdata2:512M:autoextend innodb_buffer_pool_size = 12000M innodb_flush_log_at_trx_commit = 1 innodb_io_capacity = 600 innodb_lock_wait_timeout = 120 innodb_log_buffer_size = 8M innodb_log_file_size = 200 M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 85 innodb_read_io_threads = 8 innodb_write_io_threads = 8 innodb_thread_concurrency = 32 innodb_datei_pro_tabelle innodb_rollback_on_timeout innodb_undo_directory = /Daten/mysql/Daten innodb_log_group_home_dir = /Daten/mysql/Daten ####################Sitzung############################ Join-Puffergröße = 8 M Schlüsselpuffergröße = 256 M Bulk_Insert_Buffer_Größe = 8 M maximale Heap-Tabellengröße = 96 MB temporäre Tabellengröße = 96 M Lesepuffergröße = 8 M Sortierpuffergröße = 2 M max_allowed_packet = 64M read_rnd_buffer_size = 32M ###############Protokollsatz#################### log-error = /data/mysql/log/mysqld.err log-bin = /Daten/mysql/binlog/binlog log_bin_index = /data/mysql/binlog/binlog.index max_binlog_size = 500 M slow_query_log_file = /data/mysql/log/slow.log slow_query_log = 1 lange_Abfragezeit = 10 log_queries_not_using_indexes = EIN log_throttle_queries_not_using_indexes = 10 log_slow_admin_statements = EIN log_output = DATEI, TABELLE master_info_file = /data/mysql/binlog/master.info 6. Initialisierung (warten Sie einen Moment, Sie können den Initialisierungsprozess in /data/mysql/log/mysqld.err überprüfen, um festzustellen, ob Fehlerinformationen vorliegen) [mysql@mysql-node ~]$ mysqld --defaults-file=/data/mysql/conf/my.cnf --initialize-insecure --user=mysql 7. Starten Sie mysqld [mysql@mysql-node ~]$ mysqld_safe --defaults-file=/data/mysql/conf/my.cnf & [mysql@mysql-node ~]$ lsof -i:3306 BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME mysqld 24743 mysql 23u IPv6 23132988 0t0 TCP *:mysql (HÖREN) 8. Melden Sie sich bei MySQL an und setzen Sie Ihr Passwort zurück Wenn Sie die Sock-Datei zum ersten Mal verwenden, um sich lokal bei MySQL anzumelden, ist kein Kennwort erforderlich [mysql@mysql-node ~]# mysql -S /data/mysql/tmp/mysqld.sock ............. mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456'; Abfrage OK, 0 Zeilen betroffen (0,07 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user; +--------------+------------------+----------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +--------------+------------------+----------------------------------------------------------+ | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Salzwert und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +--------------+------------------+----------------------------------------------------------+ 4 Zeilen im Satz (0,00 Sek.) Beenden. Nach dem Zurücksetzen des Passworts können Sie die Sock-Datei nicht mehr verwenden, um sich ohne Passwort anzumelden. [root@mysql-node ~]# mysql -S /data/mysql/tmp/mysqld.sock FEHLER 1045 (28000): Zugriff für Benutzer „root“@„localhost“ verweigert (mit Passwort: NEIN) [root@mysql-node ~]# mysql -p123456 mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. FEHLER 2002 (HY000): Verbindung zum lokalen MySQL-Server über Socket '/tmp/mysql.sock' nicht möglich (2) Erstellen Sie einen Softlink zur Sock-Datei [root@mysql-node ~]# ln -s /data/mysql/tmp/mysqld.sock /tmp/mysql.sock Einloggen [root@mysql-node ~]# mysql -p123456 Oder [root@mysql-node ~]# mysql -uroot -S /data/mysql/tmp/mysqld.sock -p123456 ............. mysql> Version auswählen(); +-------------+ | version() | +-------------+ | 8.0.12 | +-------------+ 1 Zeile im Satz (0,00 Sek.) #Benutzerberechtigungen erteilen. Sie müssen einen Benutzer erstellen, bevor Sie Berechtigungen erteilen können!! (Beim Anlegen eines Benutzers muss unbedingt ein @ eingefügt und eine Adresse angegeben werden. Die Adresse für die Erteilung der Autorisierung ist die nach diesem @ angegebene Adresse! Andernfalls wird bei der Erteilung der Autorisierung ein Fehler gemeldet!) mysql> Benutzer „kevin“@„%“ erstellen, identifiziert durch „123456“; Abfrage OK, 0 Zeilen betroffen (0,11 Sek.) mysql> gewähre 'kevin'@'%' alle Privilegien für *.* mit der Gewährungsoption; Abfrage OK, 0 Zeilen betroffen (0,21 Sek.) mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user; +--------------+------------------+----------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +--------------+------------------+----------------------------------------------------------+ | % | Kevin | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +--------------+------------------+----------------------------------------------------------+ 5 Zeilen im Satz (0,00 Sek.) mysql> aktualisiere mysql.user setze host='172.16.60.%', wobei user="kevin"; Abfrage OK, 1 Zeile betroffen (0,16 Sek.) Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0 mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,05 Sek.) mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user aus; +-------------+-----------------+----------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +-------------+-----------------+----------------------------------------------------------+ | 172,16,60 % | Kevin | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Salzwert und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-------------+-----------------+----------------------------------------------------------+ 5 Zeilen im Satz (0,00 Sek.) mysql> Benutzer ‚bobo‘@‚172.16.60.%‘ erstellen, identifiziert durch ‚123456‘; Abfrage OK, 0 Zeilen betroffen (0,09 Sek.) mysql> gewähre 'bobo'@'172.16.60.%' alle Berechtigungen für *.*; Abfrage OK, 0 Zeilen betroffen (0,17 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,04 Sek.) mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user aus; +-------------+-----------------+-------------------------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +-------------+-----------------+----------------------------------------------------------+ | 172,16,60 % | bobo | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | 172,16,60 % | Kevin | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Salzwert und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-------------+-----------------+-------------------------------------------------------------------------+ 6 Zeilen im Satz (0,00 Sek.) mysql> Berechtigungen für kevin@'172.16.60.%' anzeigen; +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Zuschüsse für [email protected].% | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENZEN, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABELLEN, LOCK TABELLEN, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, VIEW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `kevin`@`172.16.60.%` WITH GRANT OPTION | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) Installation und Konfiguration von MySQL auf einem einzelnen Computer und mehreren Instanzen Aus der obigen Binärbereitstellung können wir ersehen, dass eine MySQL-Instanz mit Port 3306 gestartet wurde. Jetzt müssen wir zwei weitere Instanzen starten, 3307 und 3308. Der Vorgang läuft wie folgt ab: Erstellen des Instanzdatenverzeichnisses [root@mysql-node ~]# mkdir -p /data/mysql3307/{data,log,binlog,conf,tmp} [root@mysql-node ~]# mkdir -p /data/mysql3308/{data,log,binlog,conf,tmp} [root@mysql-node ~]# chown -R mysql.mysql /data/mysql3307 [root@mysql-node ~]# chown -R mysql.mysql /data/mysql3308 MySQL konfigurieren [root@mysql-node ~]# cp -r /data/mysql/conf/my.cnf /data/mysql3307/conf/ [root@mysql-node ~]# cp -r /data/mysql/conf/my.cnf /data/mysql3308/conf/ [root@mysql-node ~]# sed -i 's#/data/mysql/#/data/mysql3307/#g' /data/mysql3307/conf/my.cnf [root@mysql-node ~]# sed -i 's#/data/mysql/#/data/mysql3308/#g' /data/mysql3308/conf/my.cnf [root@mysql-node ~]# sed -i 's/3306/3307/g' /data/mysql3307/conf/my.cnf [root@mysql-node ~]# sed -i 's/3306/3308/g' /data/mysql3308/conf/my.cnf [root@mysql-node ~]# chown -R mysql.mysql /data/mysql* Initialisieren Sie zwei Instanzen [root@mysql-node ~]# mysqld --defaults-file=/data/mysql3307/conf/my.cnf --initialize-insecure --user=mysql [root@mysql-node ~]# mysqld --defaults-file=/data/mysql3308/conf/my.cnf --initialize-insecure --user=mysql Starten Sie dann mysqld [root@mysql-node ~]# mysqld_safe --defaults-file=/data/mysql3307/conf/my.cnf & [root@mysql-node ~]# mysqld_safe --defaults-file=/data/mysql3308/conf/my.cnf & Überprüfen Sie, ob der Start erfolgreich ist [root@mysql-node ~]# ps -ef|grep mysql mysql 23996 1 0 14:37 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/conf/my.cnf mysql 24743 23996 0 14:38 ? 00:00:17 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/conf/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/mysql/log/mysqld.err --open-files-limit=65535 --pid-file=/data/mysql/tmp/mysqld.pid --socket=/data/mysql/tmp/mysqld.sock --port=3306 root 30473 23727 0 15:33 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql3307/conf/my.cnf mysql 31191 30473 17 15:33 pts/0 00:00:02 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql3307/conf/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql3307/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql3307/log/mysqld.err --open-files-limit=65535 --pid-file=/data/mysql3307/tmp/mysqld.pid --socket=/data/mysql3307/tmp/mysqld.sock --port=3307 root 31254 23727 0 15:33 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql3308/conf/my.cnf mysql 31977 31254 39 15:33 pts/0 00:00:02 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql3308/conf/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql3308/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql3308/log/mysqld.err --open-files-limit=65535 --pid-file=/data/mysql3308/tmp/mysqld.pid --socket=/data/mysql3308/tmp/mysqld.sock --port=3308 root 32044 23727 0 15:34 Punkte/0 00:00:00 grep --color=auto mysql [root@mysql-node ~]# lsof -i:3307 BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME mysqld 31191 mysql 22u IPv6 23144844 0t0 TCP *:opsession-prxy (HÖREN) [root@mysql-node ~]# lsof -i:3308 BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME mysqld 31977 mysql 22u IPv6 23145727 0t0 TCP *:tns-Server (LISTEN) [root@mysql-node ~]# lsof -i:3306 BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME mysqld 24743 mysql 23u IPv6 23132988 0t0 TCP *:mysql (HÖREN) Melden Sie sich bei der Portinstanz 3307 an und legen Sie ein Passwort fest [root@mysql-node ~]# mysql -S /data/mysql3307/tmp/mysqld.sock ............ mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456'; Abfrage OK, 0 Zeilen betroffen (0,11 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,11 Sek.) Abmelden, mit neuem Passwort anmelden [root@mysql-node ~]# mysql -uroot -S /data/mysql3307/tmp/mysqld.sock -p123456 ............. MySQL> Melden Sie sich in ähnlicher Weise bei der Portinstanz 3308 an und legen Sie ein Passwort fest [root@mysql-node ~]# mysql -S /data/mysql3308/tmp/mysqld.sock ........... mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456'; Abfrage OK, 0 Zeilen betroffen (0,13 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) Abmelden, mit neuem Passwort anmelden [root@mysql-node ~]# mysql -uroot -S /data/mysql3308/tmp/mysqld.sock -p123456 ................. MySQL> Die Startbefehle für die drei Portinstanzen 3306, 3307 und 3308 lauten: mysqld_safe --defaults-file=/data/mysql/conf/my.cnf & mysqld_safe --defaults-file=/data/mysql3307/conf/my.cnf & mysqld_safe --defaults-file=/data/mysql3308/conf/my.cnf & Die Anmeldebefehle sind: mysql -uroot -S /data/mysql/tmp/mysqld.sock -p123456 mysql -uroot -S /data/mysql3307/tmp/mysqld.sock -p123456 mysql -uroot -S /data/mysql3308/tmp/mysqld.sock -p123456 Um das Problem der wiederholten Installation zu lösen, wird die Installationsmethode für mehrere Instanzen jedoch speziell in ein Skript bearbeitet. Leser, die es benötigen, können im Hintergrund dieses offiziellen Kontos direkt auf MySQL8 antworten, um das Installationsskript für mehrere Instanzen zu erhalten. Einige Fallstricke bei der Verwendung von MySQL 8.0 1) Das Erstellen von Benutzern und Autorisierungen in MySQL 8.0 unterscheidet sich von früher. Streng genommen kann man nicht sagen, dass es anders ist, sondern nur, dass es strenger ist. MySQL 8.0 erfordert, dass Sie einen Benutzer erstellen (verwenden Sie @ und geben Sie beim Erstellen eines Benutzers eine Adresse an, dann ist die Adresse für die Erteilung der Autorisierung die Adresse, die nach diesem @! angegeben wird, andernfalls wird bei der Erteilung der Autorisierung ein Fehler gemeldet!) und ein Kennwort festlegen, bevor die Autorisierung durchgeführt werden kann. mysql> Benutzer „kevin“@„%“ erstellen, identifiziert durch „123456“; Abfrage OK, 0 Zeilen betroffen (0,04 Sek.) mysql> gewähre 'kevin'@'%' alle Privilegien für *.* mit der Gewährungsoption; Abfrage OK, 0 Zeilen betroffen (0,04 Sek.) mysql> Benutzer ‚bobo‘@‚%‘ erstellen, identifiziert durch ‚123456‘; Abfrage OK, 0 Zeilen betroffen (0,06 Sek.) mysql> gewähre 'bobo'@'%' alle Privilegien für *.* mit der Gewährungsoption; Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,04 Sek.) mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user; +--------------+------------------+----------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +--------------+------------------+----------------------------------------------------------+ | % | bobo | $A$005$1VY")q?G6<^X@-6LsXrPt5C0TwlTuvHbaOa3sYF0DKViIGoRPuCF8AzwiFcim1 | | % | Kevin | $A$005$hy`U}ZB#R::rA8W0y2rmwgySqzv0rmR1eTeNDSaXfQPWIsrh7ytbVdi85 | | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | lokaler Host | root | $A$005$/VO_y^7,]6;2qxggBLmJzhA0Qylu5/AHuRScZ/ykKedgZKh/6krOIzPs2 | +--------------+------------------+----------------------------------------------------------+ Wenn Sie immer noch die direkte Autorisierungsmethode von MySQL 5.7 und früheren Versionen verwenden, wird eine Fehlermeldung angezeigt: mysql> gewähre 'shibo'@'%', identifiziert durch '123456', alle Berechtigungen für *.*; FEHLER 1064 (42000): Ihre SQL-Syntax weist einen Fehler auf. Überprüfen Sie im Handbuch zu Ihrer MySQL-Serverversion die richtige Syntax für die Stelle „identified by ‚123456‘“ in Zeile 1. 2) Standardmäßig kann Mysql8.0 das Root-Konto nicht für die Remote-Anmeldung verwenden! Das Root-Konto kann sich nur lokal anmelden! mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user aus; +--------------+------------------+----------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +--------------+------------------+----------------------------------------------------------+ | % | bobo | $A$005$1VY")q?G6<^X@-6LsXrPt5C0TwlTuvHbaOa3sYF0DKViIGoRPuCF8AzwiFcim1 | | % | Kevin | $A$005$hy`U}ZB#R::rA8W0y2rmwgySqzv0rmR1eTeNDSaXfQPWIsrh7ytbVdi85 | | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Salzwert und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | lokaler Host | root | $A$005$/VO_y^7,]6;2qxggBLmJzhA0Qylu5/AHuRScZ/ykKedgZKh/6krOIzPs2 | +--------------+------------------+----------------------------------------------------------+ 6 Zeilen im Satz (0,00 Sek.) Wenn Sie sich remote anmelden möchten, müssen Sie die Berechtigungen des Root-Kontos aktualisieren. mysql> aktualisiere mysql.user setze host='%', wobei user="root"; Abfrage OK, 1 Zeile betroffen (0,10 Sek.) Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0 mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,14 Sek.) mysql> wähle Host, Benutzer, Authentifizierungszeichenfolge aus mysql.user; +--------------+------------------+----------------------------------------------------------+ | Host | Benutzer | Authentifizierungszeichenfolge | +--------------+------------------+----------------------------------------------------------+ | % | bobo | $A$005$1VY")q?G6<^X@-6LsXrPt5C0TwlTuvHbaOa3sYF0DKViIGoRPuCF8AzwiFcim1 | | % | Kevin | $A$005$hy`U}ZB#R::rA8W0y2rmwgySqzv0rmR1eTeNDSaXfQPWIsrh7ytbVdi85 | | % | Wurzel | $A$005$/VO_y^7,]6;2qxggBLmJzhA0Qylu5/AHuRScZ/ykKedgZKh/6krOIzPs2 | | localhost | mysql.infoschema | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.session | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | | localhost | mysql.sys | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf | +--------------+------------------+----------------------------------------------------------+ 6 Zeilen im Satz (0,00 Sek.) Auf diese Weise können Sie sich mit dem Root-Konto remote bei der mysql8.0-Datenbank anmelden Nachdem Sie die Berechtigungen des Root-Kontos geändert und dem Root-Konto die Remote-Anmeldung gestattet haben, wird bei der Verwendung von Navicat für die Remote-Verbindung mit MySQL ein Popup-Fenster mit Fehler angezeigt: Der Grund dafür ist, dass die Verschlüsselungsregel in Versionen vor MySQL 8 mysql_native_password lautet und nach MySQL 8 caching_sha2_password. Es gibt zwei Möglichkeiten, das Problem zu lösen: 1. Eine Möglichkeit besteht darin, den Navicat-Treiber zu aktualisieren. 2. Eine Möglichkeit besteht darin, die Verschlüsselungsregel für das MySQL-Benutzeranmeldekennwort auf mysql_native_password wiederherzustellen. Wählen Sie hier zur Lösung die zweite Methode: #Verschlüsselungsregeln ändernmysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; Abfrage OK, 0 Zeilen betroffen (0,16 Sek.) #Aktualisieren Sie das Passwort des Benutzersmysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; Abfrage OK, 0 Zeilen betroffen (0,08 Sek.) #Berechtigungen aktualisierenmysql> FLUSH PRIVILEGES; Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) Dadurch wird das Problem gelöst. 1. Beim Verknüpfen mit sqlyog tritt die Ausnahme 2058 auf. Zu diesem Zeitpunkt müssen wir MySQL ändern. Melden Sie sich über die Befehlszeile bei MySQL an (dasselbe wie bei der Anmeldung zum Ändern des Kennworts, verwenden Sie das geänderte Kennwort) und führen Sie dann den folgenden Befehl aus: mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; wobei Kennwort das von Ihnen geänderte Kennwort ist. Stellen Sie dann die Verbindung in SQLyog erneut her und die Verbindung wird erfolgreich hergestellt, OK. 2. Wenn die Fehlermeldung lautet: ERROR 1396 (HY000): Operation ALTER USER ist für ‚root‘@‚localhost‘ fehlgeschlagen, verwenden Sie den folgenden Befehl: mysql > ALTER USER ‚root‘@‚%‘ IDENTIFIED WITH mysql_native_password BY ‚password‘; Ändern Sie die Standardcodierungsmethode. Die Standardcodierungsmethode von mysql8.0 ist utf8mb4, daher muss sie bei Verwendung nicht geändert werden. Sie können den folgenden Befehl verwenden, um sie anzuzeigen: mysql > VARIABLEN ANZEIGEN, WO Variablenname WIE 'Zeichensatz_%' ODER Variablenname WIE 'Sortier%'; Wenn Sie andere Kodierungsmethoden wie utf8mb4 ändern müssen, können Sie die folgende Methode verwenden: Ändern Sie die MySQL-Konfigurationsdatei my.cnf. Nachdem Sie sie gefunden haben, fügen Sie den folgenden Inhalt in den folgenden drei Teilen hinzu: [Kunde] Standardzeichensatz = utf8mb4 [mysql] Standardzeichensatz = utf8mb4 [mysqld] Zeichensatz-Client-Handshake = FALSE Zeichensatzserver = utf8mb4 Sortierserver = utf8mb4_unicode_ci init_connect = "Namen festlegen utf8mb4" Starten Sie dann den mysqld-Dienst neu. Dabei gilt: character_set_client (von den Client-Quelldaten verwendeter Zeichensatz) character_set_connection (Zeichensatz auf Verbindungsebene) character_set_database (der Standardzeichensatz für die aktuell ausgewählte Datenbank) character_set_results (Zeichensatz des Abfrageergebnisses) character_set_server (Standardzeichensatz für interne Operationen) In den Datenbankverbindungsparametern: characterEncoding=utf8 wird automatisch als utf8mb4 erkannt. Sie können diesen Parameter auch weglassen und er wird automatisch erkannt. Und autoReconnect=true ist ein Muss. 6) Einige Abfragebefehle zur Parameterkonfiguration #Abfrage der maximalen Anzahl von Verbindungen in MySQL mysql> zeige globale Variablen wie 'max_conn%'; mysql> SELECT @@MAX_CONNECTIONS AS 'Maximale Verbindungen'; # Maximale Anzahl an Verbindungen anzeigen mysql> globalen Status wie „Max_used_connections“ anzeigen; # Überprüfen Sie, ob das Protokoll für langsame Abfragen aktiviert ist und der Protokollspeicherort mysql> Variablen wie „slow_query%“ anzeigen; # Zeigen Sie den Timeout-Aufzeichnung der langsamen Abfrage an logmysql> show variables like 'long_query_time'; # Zeigen Sie die Anzahl der erstellten und aktuell verbundenen Links an. mysql> Status wie „Threads%“ anzeigen; # Aktuelle Datenbankverbindung anzeigen mysql> show processlist; # Datenbankkonfiguration anzeigenmysql> Variablen wie „%quer%“ anzeigen; Referenzlinks: Quelle: https://www.cnblogs.com/kevingrace/p/10482469.html Installation und Bereitstellung von MySQL 8.0 unter CentOS: https://mp.weixin.qq.com/s/OQaL0T-jT2xfsJBulau7sQ https://blog.csdn.net/vv19910825/article/details/82979563 Dies ist das Ende dieses Artikels zur Installation und Bereitstellung von MySQL 8.0 unter CentOS8. Weitere relevante Inhalte zur Installation und Bereitstellung von MySQL finden Sie in den vorherigen Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Einfache Schritte zum Kapseln von Komponenten in Vue-Projekten
>>: Beispiel für die Implementierung des Lastausgleichs mit Nginx+SpringBoot
1. MySQL herunterladen Offizielle Website-Downloa...
1. Namenskonventionen 1. Datenbanknamen, Tabellen...
border-radius: CSS3 abgerundete Ecken Syntax: bor...
Inhaltsverzeichnis 1. Installation 2. Import 3. V...
Die Speichergröße und der Bereich jedes Gleitkomm...
Vorwort Ich bin davon überzeugt, dass bei der Ent...
In diesem Artikel wird der spezifische Code von j...
Einführung in die dynamische und statische Trennu...
Schritt 1: Stellen Sie sicher, dass MySQL Binlog ...
1. Vom Vater zum Sohn Definieren Sie das props Fe...
Inhaltsverzeichnis Überblick Was ist Bildkomprimi...
Ich habe kürzlich MySQL verwendet. Im Artikel „My...
Erkennen Sie die Unterschiede zwischen den Method...
<br />„Es gibt keine hässlichen Frauen auf d...
Inhaltsverzeichnis Vorwort 1. Stildurchdringung 1...