Installieren Sie die MySQL-Datenbank 8.0-Dienstinstanz

Vorwort

Ich habe zuvor versucht, die Community-Version und die Version, die ich MySQL5.7heute installiert habe, zu installieren, und habe sie auf zwei Arten installiert: Zum einen durch die Installation des RPM-Pakets und zum anderen durch Kompilieren.MySQL8.0

1. Vorbereitende Vorbereitung

Server-IP anzeigen

[root@localhost ~]# hostname -I
192.168.161.166 192.168.122.1 

Ob das Netzwerk gepingt werden kann

[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=53 time=20.0 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=53 time=41.4 ms

Schalten Sie Firewall und SELinux aus

[root@localhost ~]# iptables -F 
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

2. Installieren Sie MySQL8.0 mit RPM

Wenn Sie aus den vorherigen Installationsartikeln MySQL5.7gelernt haben , MySQL8sind einige Installationsprozesse für die Installation gleich.
Schritte zur Linux-Installation der MySQL5.7-Datenbank

2.1 Löschen Sie die Mariadb-Datei im System

Bei der oben genannten CentOS7Installation müssen zunächst die relevanten Dateien und Softwarepakete MySQLgelöscht werden , andernfalls wird die offizielle Installation während des nachfolgenden Installationsvorgangs beeinträchtigt.mariadbMySQL8

[root@localhost ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost ~]# rpm -qa | grep mysql
[root@localhost ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 
错误:依赖检测失败:
	libmysqlclient.so.18()(64bit)(已安裝) postfix-2:2.10.1-9.el7.x86_64 需要
	libmysqlclient.so.18(libmysqlclient_18)(64bit)(已安裝) postfix-2:2.10.1-9.el7.x86_64 需要

Wenn die obige Situation auftritt, können Sie --nodepsdie erzwungene Entfernung des Pakets direkt hinzufügen

rpm -e mariadb-libs-5.5.68-1.el7.x86_64  --nodeps

Löschen Sie dann einige Dateien, die der Mariadb-Dienst ursprünglich mit dem System geliefert hat. Sie können ihn findzum Durchsuchen verwenden

[root@localhost ~]# find / -name mariadb
[root@localhost ~]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql

2.2 Verwenden Sie eine Ali-Netzwerkquelle

Nachdem die Dateien gelöscht wurden, können Sie mit dem nächsten Schritt fortfahren, nämlich dem Sichern der integrierten Basisquelle. Natürlich ist es auch möglich, sie direkt zu löschen.

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak

Ersetzen Sie es durch die Netzwerkquelle. Ersetzen Sie es hier durch Alis Quelle und verwenden Sie
die Netzwerkquelladresse: Alibaba Cloud CentOS-Quelle

[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#查看源的状态信息
[root@localhost yum.repos.d]# yum repolist
#清空之前的一些软件包信息
[root@localhost yum.repos.d]# yum clean all
#重新建立元缓存
[root@localhost yum.repos.d]# yum makecache 

2.3 Installieren Sie MySQL8.0

Mit diesem Schritt beginnt die formelle Installation von MySQL. Gehen Sie zunächst zur offiziellen Website, um das erforderliche Paket herunterzuladen.
Wenn Sie nicht wissen, wie Sie es finden, können Sie direkt mit Strg + F nach der Adresse des Pakets suchen, das Sie benötigen Klicken Sie dann auf und kopieren Sie dann den vollständigen Download-Link auf den Server. Superior.
Adresse des MySQL-RPM-Pakets: Klicken Sie hier, um den Befehl zum Herunterladen des Pakets
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
zu verwendenwgetrpm

wget https://repo.mysql.com/mysql80-community-release-el7.rpm

Nach dem Herunterladen ist der Standardspeicherort des rpmPakets lokal und muss mit dem Befehl rpm installiert werden.
Fügen Sie hier eine Bildbeschreibung ein

[root@localhost yum.repos.d]# rpm -ivh mysql80-community-release-el7.rpm 
警告:mysql80-community-release-el7.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql80-community-release-el7-7  ################################# [100%]

Wenn Sie sich immer noch nicht erinnern, was ivh bedeutet, sprechen wir über
i für die Installation von Softwarepaketen,
v für die Anzeige des Prozesses
, h für die Anzeige des Fortschrittsbalkens

Nachdem Sie den vorherigen Schritt ausgeführt haben, /etc/yum.repos.dbefindet sich im Verzeichnis eine Quelle repo. Zu diesem Zeitpunkt können Sie das Programm mit dem Befehl yum in dieser Quelle installieren.

[root@localhost yum.repos.d]# ls
CentOS-Base.repo       CentOS-Vault.repo
CentOS-Base.repo.bak   CentOS-x86_64-kernel.repo
CentOS-CR.repo         epel.repo
CentOS-Debuginfo.repo  mysql80-community-release-el7.rpm
CentOS-fasttrack.repo  mysql-community-debuginfo.repo
CentOS-Media.repo      mysql-community.repo
CentOS-Sources.repo    mysql-community-source.repo
yum install mysql-community-server -y

2.4 Starten Sie den Dienst

Die vorherige Installation ist beendet und es ist Zeit, den Dienst zu starten

[root@localhost yum.repos.d]# systemctl start mysqld
[root@localhost yum.repos.d]# systemctl enable mysqld

Finden Sie das ursprüngliche Passwort für den Dienst

[root@localhost yum.repos.d]# grep -aiw "Password" /var/log/mysqld.log 
2023-03-09T09:03:09.167404Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: p!c?qf/4gfqU

Auf den Doppelpunkt folgt das ursprüngliche MySQL-Passwort.
Fügen Sie hier eine Bildbeschreibung ein
Wir müssen mit dem nächsten Schritt fortfahren, nämlich dem Ändern des ursprünglichen Passworts.

[root@localhost yum.repos.d]# mysql -uroot -p
Enter password:     #输入原始密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.32

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
#修改密码,密码尽可能的复杂些,至少需要8位以上。
mysql> alter user 'root'@'localhost' identified by 'Dianzan80/';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

Die Verwendung RPMdes Installationsprozesses ist so inhaltsreich, sehen wir uns weiterhin an, wie man kompiliert und installiert MySQL8.0.

3. Installieren Sie MySQL8.0 mit dem Binärpaket

Um die Datenbank durch Kompilieren zu installieren, müssen Sie zunächst den Speicherort des komprimierten Pakets kennen
und die offizielle Website-Adresse des Pakets kompilieren: Klicken Sie hier

3.1 Komprimiertes Paket herunterladen

MySQL8.0ZIP-Datei heruntergeladen

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

Entpacken Sie das Paket und fahren Sie mit /usr/local/dem nächsten fort

[root@localhost ~]# tar xf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz 
[root@localhost ~]# mv mysql-8.0.32-linux-glibc2.12-x86_64 /usr/local/mysql

3.2 Erstellen Sie einen Systembenutzer

Erstellen Sie einen Benutzer, um die Datenbankverwaltung zu erleichtern

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql

3.3 Festlegen globaler MySQL-Variablen

Ändern Sie die globalen Variableninformationen in /etc/profileund fügen Sie diese beiden Sätze am Ende hinzu.

[root@localhost ~]# vim /etc/profile
[root@localhost ~]# tail -n 2 !$
tail -n 2 /etc/profile
export MYSQL_HOME=/usr/local/mysql    1
export PATH=$MYSQL_HOME/bin:$PATH     2
[root@localhost ~]# source !$
source /etc/profile

Fügen Sie hier eine Bildbeschreibung ein

3.4 Initialisieren Sie die Datenbank

Erstellen Sie zunächst im Voraus ein Verzeichnis zum Speichern von Daten und erstellen Sie es /usr/local/mysql/unter dem Verzeichnis

[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# mkdir data

Es ist Zeit, die Datenbank zu initialisieren

[root@localhost mysql]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2023-03-09T09:30:27.217276Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2023-03-09T09:30:27.217395Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.32) initializing of server in progress as process 3831
2023-03-09T09:30:27.223941Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-03-09T09:30:28.700635Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-03-09T09:30:30.538920Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: tm!NuBMBR2r/
[root@localhost mysql]# echo $?
0

user gibt den Datenbanknamen an.
basedir gibt den Ort an, an dem die Datenbank gespeichert ist.
datadir gibt den Ort an, an dem die Daten gespeichert sind

Es ist nicht klar, ob die Ausführung erfolgreich ist oder nicht. Sie können es echo $?zur Beurteilung verwenden, und 0 bedeutet kein Problem.
Ein weiterer zu beachtender Punkt ist, dass nach der Initialisierung ein Originalpasswort generiert wird, das bekannt sein und später für die Anmeldung bei der Datenbank verwendet werden muss.
Fügen Sie hier eine Bildbeschreibung ein

3.5 Konfigurationsdateien festlegen

mysqlStandardmäßig befindet sich im Verzeichnis eine Verzeichnisdatei , support-filesund die Konfigurationsdatei im Verzeichnis muss in das /etc/init.d/Startelement des Dienstes kopiert werden.

[root@localhost support-files]# ll
总用量 20
-rwxr-xr-x. 1 mysql mysql  1061 1216 23:34 mysqld_multi.server
-rw-r--r--. 1 mysql mysql  2027 1217 00:26 mysql-log-rotate
-rwxr-xr-x. 1 mysql mysql 10576 1217 00:26 mysql.server
[root@localhost support-files]# cp mysql.server /etc/init.d/mysql.server

/etc/Darüber hinaus müssen Sie dem Verzeichnis eine Konfigurationsdatei hinzufügen

vim /etc/my.cnf
#以下是文件内要添加的信息,文件默认有内容,可以删除修改成如下内容。

[client]

port = 3306
socket = /tmp/mysql.sock
[mysqld]

#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1

#服务端口号 默认3306
port = 3306

#mysql安装根目录
basedir = /usr/local/mysql

#mysql数据文件所在位置
datadir = /usr/local/mysql/data

#临时目录
tmpdir  = /tmp

#设置socke文件所在目录
socket = /tmp/mysql.sock

#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
skip-external-locking

#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4

#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci

#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
#lower_case_table_names = 1

#最大连接数
max_connections = 400

#最大错误连接数
max_connect_errors = 1000

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M


#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

#内部内存临时表的最大值 ,设置成128M。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728


#数据库错误日志文件
log_error = error.log

#慢查询sql日志设置
slow_query_log = 1
slow_query_log_file = slow.log
#开启binlog
log_bin=on

#检查未使用到索引的sql
log_queries_not_using_indexes = 1

#针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数
log_throttle_queries_not_using_indexes = 5

#作为从库时生效,从库复制中如何有慢sql也将被记录
log_slow_slave_statements = 1

#慢查询执行的秒数,必须达到此值可被记录
long_query_time = 8

#检索的行数必须达到此值才可被记为慢查询
min_examined_row_limit = 100

#mysql binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days = 5

Dann stellt sich die Frage: my.cnfWozu dient diese Konfigurationsdatei?

Tatsächlich ist my.cnf eine Verwaltungskonfigurationsdatei von MYSQL. Durch Ändern des Inhalts dieser Datei kann MYSQL optimiert und die Gesamtleistung von MYSQL verbessert werden.

3.6 Starten Sie die Datenbank

Die oben genannten Informationen sind konfiguriert, aber vergessen Sie nicht, die Datenbank zu starten.

service mysql.server start 

Wenn Sie schließlich eins sehen SUCCESS, bedeutet dies, dass der Start erfolgreich war.

3.6 Ändern Sie das Kennwort des Datenbankverwaltungssystems

Merken Sie sich das ursprüngliche Passwort der vorherigen Datenbank. Nein, es muss hier verwendet werden. Fügen Sie hier eine Bildbeschreibung ein
Wenn die Datenbank das Passwort nicht erkennt, fügen Sie zum Anmelden einfache Anführungszeichen hinzu

[root@localhost mysql]# mysql -uroot -ptm!NuBMBR2r/
bash: !NuBMBR2r/: event not found
[root@localhost mysql]# mysql -uroot -p'tm!NuBMBR2r/'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by 'Dianzan001/!';
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

Der Kompilierungs- und Installationsprozess wurde ebenfalls demonstriert. Anschließend können Sie sich mit dem gerade für den Betrieb festgelegten Kennwort direkt bei der Datenbank anmelden.

Zusammenfassen

Die Kompilierung von MySQL ist relativ kompliziert. Sie können es ein paar Mal versuchen und sind mit den Schritten vertraut. Wenn Sie der Meinung sind, dass der obige Inhalt in Ordnung ist, können Sie ihn liken und unterstützen!
Fügen Sie hier eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/rhn_111/article/details/129425641
Recomendado
Clasificación