Common Installation TasksThese tasks are performed on all DB servers, no matter what role (master or slave) they are to perform. Attach STOREFirst of all, the STORE is connected to the machine, as described *** HERE ***.here: Mounting STORE - All Linux except for STORE (CentOS8/Win2019) Installation der SoftwareDas Einbinden der offiziellen MySQL Software Repositores und die Installation des MySQL-Servers erfolgt mit folgenden Befehlen: MySQL 8.x Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | MySQL 8.x |
---|
| yum -y install libaio
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server |
|
MySQL 5.6 Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | MySQL 5.6 |
---|
| yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum -y install mysql-community-server |
|
Beide VariantenDer MySQL Server Dienst wird mit folgendem Befehl in die Liste der automatisch startenden Dienste aufgenommen und gestartet. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | MySQL service autostart |
---|
| chkconfig mysqld on
service mysqld start |
|
Als nächstes müssen in der Firewall die Port-Freigaben für den MySQL Server Dienst eingetragen und persistent gespeichert werden: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Configure firewall |
---|
| firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload |
|
Um die Konfiguration des MySQL Servers zu vereinfachen, wird nun ein Verzeichnis angelegt, in dem modulare Konfigurationsdateien abgelegt werden können. Damit diese auch vom MySQL Server geladen werden, muss in der Hauptkonfigurationsdatei noch ein Eintrag erfolgenden. Dies erfolgt durch die Eingabe folgender Befehle: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Configure MySQL Server |
---|
| mkdir /etc/my.cnf.d
cat <<EOFF >> /etc/my.cnf
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/my.cnf.d/
EOFF
semanage fcontext -a -t mysqld_etc_t "/etc/my\.cnf\.d(/.*)?"
restorecon -R -v /etc/my.cnf.d
|
|
Diese Befehle erzeugen das Verzeichnis, fügen der Hauptkonfigurationsdatei die Ladeanweisung für die modularen Konfigurationsdateien hinzu, erstellen eine SELINUX-Sicherheitsfreigabe für das neue Konfigurationsverzeichnis und erzeugen die entsprechenden Security-Labels. Als nächstes wird eine modulare Konfigurationsdatei mit einigen kommentierten relevanten Optimierungseinstellungen eingespielt. MySQL 8.x Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Load the basic settings |
---|
| wget -P /etc/my.cnf.d http://cdn.jtel.de/downloads/configs/jtel-enhanced-8.cnf |
|
Die Datei /etc/mycnf.d/jtel-enhanced-8.cnf enthält eine Reihe gut kommentierter Konfigurationsanweisungen mit denen die Funktion des MySQL Server optimiert werden kann. Die meisten dieser Anweisungen sind auskommentiert. Je nach Bedarf sollten diese Parameter mit Vorsicht angepasst werden. Die Standardwerte sollten aber für die meisten Installationen in Ordnung sein. MySQL 5.6 Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Load the basic settings |
---|
| wget -P /etc/my.cnf.d http://cdn.jtel.de/downloads/configs/jtel-enhanced.cnf |
|
Die Datei /etc/mycnf.d/jtel-enhanced.cnf enthält eine Reihe gut kommentierter Konfigurationsanweisungen mit denen die Funktion des MySQL Server optimiert werden kann. Die meisten dieser Anweisungen sind auskommentiert. Je nach Bedarf sollten diese Parameter mit Vorsicht angepasst werden. Die Standardwerte sollten aber für die meisten Installationen in Ordnung sein. Beide VariantenNun muss der MySQL Server neu gestartet werden: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Start MySQL Server |
---|
| service mysqld restart |
|
Nach dem ersten Start des MySQL Servers müssen nun die Zugangsdaten für den root-Benutzer festgelegt werden. Da in MySQL ein Benutzerkonto nicht nur aus einem Benutzernamen sondern auch aus eine Herkunftsadresse der Verbindung besteht, muss noch ein weiterer root-Benutzer erzeugt werden, der sich von beliebigen Herkunftsadressen verbinden darf. MySQL 8.xMySQL 8.x speichert ein generiertes Passwort für den root Benutzer in der Datei /var/log/mysqld.log Dieses Passwort muss als erstes extrahiert werden. Da es oft Sonderzeichen enthält, die nicht ohne Weiteres in die Kommandozeile eingegeben werden können, erfolgt die erste Anpassung durch manuelle Eingabe des Passwortes. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | MySQL 8.x - Create and configure server users |
---|
| mysqladmin -u root -p password '<password>' |
|
Anschließend wird folgende Befehlskette eingegeben um den weiteren User zu erstellen: ACHTUNG: <password> mit den entsprechenden Passwort ersetzen. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | MySQL 8.x - Create and configure server users |
---|
| mysql -u root -p<password> -v -e"CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '<password>'"
mysql -u root -p<password> -v -e"GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION"
mysql -u root -p<password> -v -e"FLUSH PRIVILEGES" |
|
MySQL 5.6ACHTUNG: <password> mit den entsprechenden Passwort ersetzen. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | MySQL 5.6 - Create and configure server users |
---|
| mysqladmin -u root password '<password>'
mysql -u root -p<password> -v -e"CREATE USER 'root'@'%' IDENTIFIED BY '<password>'"
mysql -u root -p<password> -v -e"GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION"
mysql -u root -p<password> -v -e"FLUSH PRIVILEGES" |
|
Beide VariantenAls nächstes wird noch ein zusätzliches Plugin-Modul dem MySQL Server hinzugefügt. Dieses Modul wird ab jtel Software Version 3.06 für die Kommunikation mit weiteren Softwarekomponenten benötigt. Bei Neuinstallationen soll es aber auch dann installiert werden, wenn geplant ist, ältere Revisionen der Software einzuspielen, damit einem späteren Update nichts im Wege steht. Dies erfolgt durch folgende Befehle: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Install UDP Send Plugin - MASTER |
---|
| cp /home/jtel/shared/JTELCarrierPortal/Libraries/jtel_udf_udpsend/jtel_udf_udpsend.so /usr/lib64/mysql/plugin/
chown root:root /usr/lib64/mysql/plugin/jtel_udf_udpsend.so
chmod 755 /usr/lib64/mysql/plugin/jtel_udf_udpsend.so
chcon system_u:object_r:lib_t:s0 /usr/lib64/mysql/plugin/jtel_udf_udpsend.so |
|
Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Install UDP Send Plugin - SLAVE |
---|
| cp /home/jtel/shared/JTELCarrierPortal/Libraries/jtel_udf_udpsend/dummy/jtel_udf_udpsend.so /usr/lib64/mysql/plugin/
chown root:root /usr/lib64/mysql/plugin/jtel_udf_udpsend.so
chmod 755 /usr/lib64/mysql/plugin/jtel_udf_udpsend.so
chcon system_u:object_r:lib_t:s0 /usr/lib64/mysql/plugin/jtel_udf_udpsend.so |
|
Um die zusätzliche Funktion den SQL Prozeduren verfügbar zu machen, muss noch folgender Befehl ausgeführt werden (<password> mit den entsprechenden Passwort ersetzen): Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Register the UDP send command |
---|
| mysql -u root -p<password> -v -e"DROP FUNCTION IF EXISTS udpsend"
mysql -u root -p<password> -v -e"CREATE FUNCTION udpsend RETURNS STRING SONAME 'jtel_udf_udpsend.so'" |
|
Note |
---|
| Die oben aufgelisteten SQL Befehle müssen auf einem Datenbankserver ausgeführt werden, bevor er Teil eines Replikationsverbundes wird. Soll das UDP Plugin auf bestehenden DATA-Server nachgerüstet werden, so muss eine andere Vorgehensweise gewählt werden: - Das Modul muss auf allen Server des Verbunden (Sowohl Master als auch Slaves) in das Plugin-Verzeichnis kopiert werden (Siehe Code Block "UDP Send Plugin installieren").
- Die Registrierung des Plugins dar nur auf dem Master Server erfolgen. Da der Befehl durch Replikation auch auf den Slaves ausgeführt wird, ist es nicht erforderlich, den Befehl auch dort auszuführen.
ACHTUNG: Wird der Befehl ausgeführt ohne dass das UDP Plugin auf allen Servern des Verbundes vorhanden ist, verursacht dies einen Abbruch der Replikation, der nur durch einen händischen Eingriff repariert werden kann. |
Anpassung my.cnf auf RAM des Servers Damit der Server den zur Verfügung gestellten RAM vollständig nutzt, muss eine Konfiguration angepasst werden mit vi. Diese Einstellung sollte ca. 3/4 des RAMs des Servers entsprechen, wobei 3-4 GB für mysql und andere Prozesse übrig bleiben sollten. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | vi /etc/my.cnf.d/jtel-enhanced.cnf |
---|
| # For 8 GB RAM
innodb_buffer_pool_size = 5120M
# For 12 GB RAM
innodb_buffer_pool_size = 8192M
# For 16 GB RAM
innodb_buffer_pool_size = 12288M
...
# From 16 GB simply take 3/4 of the RAM |
|
MySQL NeustartAls letztes wird der MySQL Server neu gestartet, damit alle Einstellungen übernommen werden: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Restart the MySQL server |
---|
| service mysqld restart |
|
|