So installieren Sie MySQL 5.7.29 mit einem Klick mithilfe eines Shell-Skripts

So installieren Sie MySQL 5.7.29 mit einem Klick mithilfe eines Shell-Skripts

Dieser Artikel bezieht sich auf die Arbeit des 51CTO-Blogautors wjw555

Skriptinhalt:

vim install.mysql.sh
 
#!/bin/bash
 
[ -f /etc/init.d/funktionen ]&& . /etc/init.d/funktionen
 
###Überprüfen Sie, ob der Benutzer root ist
wenn [ $UID -ne 0 ]; dann
 echo "Fehler: Sie müssen Root sein, um dieses Skript auszuführen. Bitte verwenden Sie Root zur Installation."
 Ausfahrt 1
fi
 
klar
echo "================================================================================="
echo „Ein Tool zum automatischen Kompilieren und Installieren von MySQL 5.7.29 unter Redhat/CentOS Linux“
echo "================================================================================="
#pkill -9 MySQL
#Datum +%J-%m-%d-%H-%M
#Deinstallieren Sie das systemeigene Mysql
#/bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps
#/bin/rpm -e $(/bin/rpm -qa | grep mariadb|xargs) --nodeps
#/bin/rm -f /etc/my.cnf
 
#MySQL-Root-Passwort festlegen
 echo "============================="
  mysqlrootpwd="$1"
  wenn [ "$1" = "" ]; dann
    mysqlrootpwd="rootmysql"
  fi
 
#Welche MySQL-Version möchten Sie installieren?
echo "============================="
 
 isinstallmysql57="5.7.29"
 echo "Installieren Sie MySQL 5.7.29. Bitte geben Sie y ein"
 read -p "(Bitte geben Sie j, n ein):"
# Initialisieren Sie den installationsbezogenen Inhalt.
 #Altes MySQL-Programm löschen
 rpm -qa|grep mysql
 rpm -e mysql
 
 
Katze >>/etc/security/limits.conf<<EOF
* weicher nproc 65535
* harter nproc 65535
* Soft-Nofile 65535
* hartes Nofile 65535
Ende der Laufzeit
 
echo "fs.file-max=65535" >> /etc/sysctl.conf
 
echo "=============================MySQL 5.7.29 installieren======================================"
 
#Alte my.cnf sichern
#rm -f /etc/my.cnf
wenn [ -s /etc/my.cnf ]; dann
 mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak
fi
echo "============================MySQL 5.7.29 wird installiert…………============================"
 
##MySQL-Verzeichniskonfigurationsvariable definieren
Datadir=/Daten/mysql/Daten
Binlogdir=/Daten/mysql/binlog
Logdir=/Daten/mysql/logs
 
##yum installiere devel und wget mysql
yum installiere numactl
/usr/bin/wget -P /tmp http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
Schlaf 2
tar xf /tmp/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql
grep mysql /etc/passwd
RETVAL=$?
wenn [ $RETVAL -ne 0 ];dann
 useradd mysql -s /sbin/nologin -M
  Aktion „MySQL-Benutzer erfolgreich hinzugefügt“ /bin/true
 anders
  Aktion " $(echo -e "\e[31;47;5m MySQL-Benutzer existiert bereits\e[0m")" /bin/false
fi
 
wenn [ ! -d "$Datadir" ]
Dann
 mkdir -p /Daten/MySQL/Daten
fi
 
 
wenn [ ! -d "$Binlogdir" ]
Dann
 mkdir -p /data/mysql/binlog
fi
 
wenn [ ! -d "$Logdir" ]
Dann
 mkdir -p /data/mysql/logs
fi
 
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /usr/local/mysql
 
# /etc/my.cnf bearbeiten
#SERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'`
Katze >>/etc/my.cnf<<EOF
[Kunde]
Port = 3306
 
[mysql]
automatische Wiederaufbereitung
Eingabeaufforderung="\\u@\\h [\\d]>"
#pager="weniger -i -n -S"
#tee=/opt/mysql/query.log
 
[mysqld]
####: für global
Benutzer =mysql       
basedir =/usr/local/mysql/    
Datenverzeichnis = /Daten/MySQL/Daten 
Server-ID = 2333306      
Port =3306       
Zeichensatzserver =utf8       
explizite_Standards_für_Zeitstempel = aus       
log_timestamps = System      
Socket = /tmp/mysql.sock    
schreibgeschützt = 0        
skip_name_resolve =1        
auto_increment_increment =1        
auto_increment_offset =1        
Kleinbuchstaben-Tabellennamen = 1        
secure_file_priv =        
Open_files_limit = 65536       
max_Verbindungen = 1000       
Thread-Cache-Größe = 64       
Tabelle_öffnen_Cache =81920       
Tabellendefinitionscache = 4096       
Tabelle_öffnen_Cache-Instanzen = 64       
Anzahl der vorbereiteten Stmts = 1048576      
 
####: für Binlog
binlog_format = Zeile       
log_bin = /Daten/mysql/binlog/mysql-bin      
binlog_rows_query_log_events = ein       
log_slave_updates = ein       
Ablaufprotokolltage =7        
binlog_cache_size = 65536       
#binlog_checksum =keine       
sync_binlog = 1        
Slave-Bewahrung-Commit-Reihenfolge = EIN       
 
####: für Fehlerprotokoll
log_error = /data/mysql/logs/error.log      
 
general_log = aus       
general_log_file = /data/mysql/logs/general.log     
 
####: für langsames Abfrageprotokoll
slow_query_log = ein        
slow_query_log_file = /data/mysql/logs/slow.log      
#log_queries_not_using_indexes = ein       
lange_Abfragezeit = 1,000000      
 
####: für gtid
#gtid_executed_compression_period = 1000       
gtid_mode = ein        
enforce_gtid_consistency = ein        
 
####: für die Replikation
skip_slave_start = 1        
#master_info_repository =Tabelle       
#relay_log_info_repository =Tabelle       
Slave_Parallel_Typ = logische_Uhr     
Slave_Parallel_Worker = 4        
#rpl_semi_sync_master_enabled = 1        
#rpl_semi_sync_slave_enabled = 1        
#rpl_semi_sync_master_timeout = 1000       
#plugin_load_add =semisync_master.so   
#plugin_load_add =semisync_slave.so    
binlog_group_commit_sync_delay = 100       
binlog_group_commit_sync_no_delay_count = 10      
 
####: für innodb
Standardspeichermaschine = innodb     
default_tmp_storage_engine = innodb     
innodb_data_file_path = ibdata1:1024M:autoextend 
innodb_temp_data_file_path = ibtmp1:12M:autoextend  
innodb_buffer_pool_filename = ib_buffer_pool   
innodb_log_group_home_dir = /Daten/mysql/Daten      
innodb_log_files_in_group = 3       
innodb_log_file_size = 1024 M      
innodb_file_per_table = ein      
innodb_online_alter_log_max_size = 128 M      
innodb_open_files = 65535      
innodb_page_size = 16k      
innodb_thread_concurrency = 0       
innodb_read_io_threads = 4       
innodb_write_io_threads = 4       
innodb_purge_threads = 4       
innodb_page_cleaners = 4   
     # 4 (LRU-Dirty-Pages aktualisieren)
innodb_print_all_deadlocks = ein      
innodb_deadlock_detect = ein      
innodb_lock_wait_timeout = 20      
innodb_spin_wait_delay = 128      
innodb_autoinc_lock_mode = 2       
innodb_io_capacity = 200      
innodb_io_capacity_max = 2000      
#--------Persistente Optimiererstatistiken
innodb_stats_auto_recalc = ein      
innodb_stats_persistent = ein      
innodb_stats_persistent_sample_pages = 20      
 
 
innodb_adaptive_hash_index = ein      
innodb_change_buffering =alles      
innodb_change_buffer_max_size = 25      
innodb_flush_neighbors = 1       
#innodb_flush_method =       
innodb_doublewrite = ein      
innodb_log_buffer_size = 128 M      
innodb_flush_log_at_timeout = 1       
innodb_flush_log_at_trx_commit = 1       
innodb_buffer_pool_size =4096M      
innodb_buffer_pool_instances = 4
automatisches Commit =1       
#--------innodb-Scan-resistent
innodb_old_blocks_pct = 37      
innodb_old_blocks_time = 1000      
#--------innodb vorauslesen
innodb_read_ahead_threshold = 56      
innodb_random_read_ahead = AUS      
#--------InnoDB-Pufferpoolstatus
innodb_buffer_pool_dump_pct = 25      
innodb_buffer_pool_dump_at_shutdown =EIN      
innodb_buffer_pool_load_at_startup =EIN      
 
Ende der Laufzeit
 
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
Pass=$(grep 'Ein temporäres Passwort' /data/mysql/logs/error.log |awk '{print $NF}')
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld auf
/etc/init.d/mysqld starten
echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
Quelle /etc/profile.d/mysql.sh
echo "============================MySQL 5.7.29-Installation abgeschlossen============================"
ps -eo start,cmd,pid|grep mysql
/usr/local/mysql/bin/mysqladmin -uroot -p"$Pass" Passwort $mysqlrootpwd
[root@localhost ~]# sh install.mysql.sh mysqlroot
[root@localhost ~]# Quelle /etc/profile.d/mysql.sh

Hinweis: mysqlroot ist das neue Passwort, nachdem das Installationsskript das Standardpasswort des MySQL-Dienstes geändert hat

[root@localhost ~]# mysql -uroot -p'mysqlroot' -e "Jetzt auswählen()"   
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
+---------------------+
| jetzt() |
+---------------------+
| 13.10.2020 16:18:47 |
+---------------------+

An diesem Punkt wurde der MySQL-Dienst erfolgreich gestartet!

Zusammenfassen

Dies ist das Ende dieses Artikels über die Installation von MySQL 5.7.29 mit einem Klick unter Verwendung eines Shell-Skripts. Weitere Informationen zur Installation von MySQL mit einem Klick unter Verwendung eines Shell-Skripts 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:
  • Shell-Skript zur Überwachung des MySQL-Master-Slave-Status
  • Gemeinsame MySQL-Sicherungsbefehle und Shell-Sicherungsskripte
  • Shell-Skript zum regelmäßigen Sichern und Aufbewahren von MySQL-Datenbankdaten für einen bestimmten Zeitraum
  • Shell-Skript automatisiert die Erstellung der Grundkonfiguration virtueller Maschinen: tomcat--mysql--jdk--maven
  • Shell-Skript zum Implementieren geplanter MySQL-Sicherungs-, Lösch- und Wiederherstellungsfunktionen
  • Ein kleines Shell-Skript zum genauen Zählen der Zeilenanzahl in jeder MySQL-Tabelle
  • Erstellen Sie MySQL-Datenbankkonten auf dem Server stapelweise über Shell-Skripte
  • So fügen Sie mithilfe eines Shell-Skripts einen Index zu MySQL hinzu
  • Beenden Sie eine Reihe von MySQL-Datenbanken mit nur einem Shell-Skript wie diesem (empfohlen)
  • So verwenden Sie Shell-Skripte, um täglich automatisch mehrere MySQL-Datenbanken zu sichern
  • Einführung und Installation von MySQL Shell

<<:  Beispielcode für die JS-Funktion „Anti-Shake“ und „Throttling“ zur Entwicklung von Webprojekten

>>:  Der Unterschied zwischen JS-Pre-Parsing und Variablen-Promotion im Web-Interview

Artikel empfehlen

Detaillierte Analyse der HTML-Semantik und der zugehörigen Front-End-Frameworks

Über Semantik Die Semantik ist die Lehre von der ...

So implementieren Sie Linux Deepin, um redundante Kernel zu löschen

Im vorherigen Artikel wurde beschrieben, wie man ...

Mit CSS3 implementierter Gradienten-Folieneffekt

Ergebnisse erzielen Code html <div Klasse=&quo...

Vue3.x verwendet mitt.js für die Komponentenkommunikation

Inhaltsverzeichnis Schnellstart Anwendung Grundpr...

Vorschläge zur Optimierung der Webseiten-Kopfzeile

Logo-Optimierung: 1. Das Logobild sollte so klein...

Was Sie über MySQL-Sperren wissen müssen

1. Einleitung MySQL-Sperren können je nach Umfang...

Soll die Like-Funktion MySQL oder Redis verwenden?

Inhaltsverzeichnis 1. Häufige Fehler von Anfänger...

Acht Hook-Funktionen in der Vue-Lebenszykluskamera

Inhaltsverzeichnis 1. beforeCreate und erstellte ...

So erstellen Sie mit Docker ein Basisimage der Python-Laufzeitumgebung

1. Vorbereitung 1.1 Laden Sie das Python-Installa...

Das WeChat-Applet wählt die Bildsteuerung

In diesem Artikelbeispiel wird der spezifische Co...

Verwenden einer MySQL-Datenbank im Docker, um LAN-Zugriff zu erhalten

1. Holen Sie sich das MySQL-Image Docker-Pull MyS...