Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
systemctl enable mysqld.service systemctl start mysqld.service

The debian installation will ask you some questions during installation:

  • MySQL root Password
  • Default authentication plugin - change to "Use Legacy Authentication Method"

The installer will also start and enable the mysql server.

Configure Firewall

Access to the MySQL Server is configured in the firewall:

Sv translation
languageen

Common Installation Tasks

These tasks are performed on all DB servers, no matter what role (master or slave) they are to perform.

Attach STORE

First of all, the STORE is connected to the machine, as described here: Mounting STORE - All Linux except for STORE (CentOS8/Win2019)

Install MySQL

Configure Repositories

and Install mysql-community-server

CentOS 8.x comes with some default repositories, which we do not want. These are disabled, and the MySQL repository is installed. Then the MySQL Server is installed.

Enable the Debian MySQL 8.x repository and install it. Note, you will get asked some questions. Just get MySQL 8.x and say OK.

translations-ignore

Code Block
languagebash
wget https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb
dpkg -i mysql-apt-config_0.8.16-1_all.deb

Remove the Temporary .deb File

Code Block
languagebash
rm -f mysql-apt-config_0.8.16-1_all.deb

Update the Package List and Install MySQL Server

Code Block
languagebash
apt-get update
apt-get
# Make sure liibaio is on dnf -y install libaio # Disable some default stuff dnf config-manager --disable mysql-connectors-community dnf config-manager --disable mysql-tools-community dnf -y module disable mysql # Install the Oracle MySQL repo and the client dnf -y install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm dnf
 -y install mysql-
community-
server

Start MySQL

Next, the MySQL server is configured to autostart on boot, and started up:

Translations Ignore
Code Block
languagebash
Translations Ignore


Code Block
languagebash
firewall-cmd --zone=public --add-port=ufw allow 3306/tcp --permanent
firewall-cmd --reload


Configure MySQL

Configuration Files

The Debian MySQL 8.x creates a configuration directory /etc/mymysql/mysql.cnfconf.d/ when it installs. The jtel configuration files are stored here, but a reference must be added to this directory so that mysql loads the configuration files.

This is added with the following command:

Translations Ignore
Code Block
languagebash
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
The next command downloads the main configuration file for the mysql server. This

file is downloaded and stored here. This file contains a lot of well commented settings which can be tweaked if required. The main parameter to be changed is the RAM usage of the sever. See below.

Translations Ignore


Code Block
languagebash
wget -P /etc/mymysql/mysql.cnfconf.d http://cdn.jtel.de/downloads/configs/jtel-enhanced-8-deb.cnf
Restart


Configure Server

RAM

In order that the server makes the best use of the RAM available, the configuration file /etc/mysql/mysql.conf.d/jtel-enhanced-8.cnf must be adapted.

The setting innodb_buffer_pool_size should be adapted to about 3/4 of the available RAM, but a minimum of 3-4 GB should remain for the use of other processes. For Servers with 4 GB RAM, this should not exceed 2 GB. Now, the MySQL must be restarted:

Translations Ignore


Code Block
languagebash
systemctl restart mysqld.service

Configure Users

After the first restart, user access must be setup.

MySQL 8.x saves a generated random password for the root user in the file /var/log/mysqld.log

This password must be extracted. Often, it contains special characters which cannot be input on the command line within a script. For the following command the password is input manually. Note, that <password> refers to the NEW password you want to assign to the root account.

Status
colourRed
titleCaution Password

# For 4 GB RAM
innodb_buffer_pool_size = 2048M

# 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


Restart MySQL

The MySQL server is restarted to load all configuration settings.

Translations Ignore


mysqladmin -u root -p password '<password>'
Code Block
languagebash
titleRestart the MySQL server
systemctl restart mysql


Configure Users

After the first restart, user access must be setup.

The following commands configure the further users required:

Status
colourRed
titleCaution Password

Translations Ignore


Code Block
languagebash
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"


Install UDP Plugin

Next, the UDP plugin is installed. This is required for the communication with further software modules in the system, when certain DB changes are made.

The installation is slightly different for master and slave servers.

Installation

Master Server

Translations Ignore


Code Block
languagebash
cp /home/jtel/shared/JTELCarrierPortal/Libraries/jtel_udf_udpsend/jtel_udf_udpsend.so /usr/lib64lib/mysql/plugin/
chown root:root /usr/lib64lib/mysql/plugin/jtel_udf_udpsend.so
chmod 755644 /usr/lib64/mysql/plugin/jtel_udf_udpsend.so
chcon system_u:object_r:lib_t:s0  /usr/lib64/mysql/plugin/jtel_udf_udpsend.so


Slave Server


Translations Ignore


Code Block
languagebash
cp /home/jtel/shared/JTELCarrierPortal/Libraries/jtel_udf_udpsend/dummy/jtel_udf_udpsend.so /usr/lib64lib/mysql/plugin/
chown root:root /usr/lib64lib/mysql/plugin/jtel_udf_udpsend.so
chmod 755644 /usr/lib64/mysql/plugin/jtel_udf_udpsend.so
chcon system_u:object_r:lib_t:s0  /usr/lib64/mysql/plugin/jtel_udf_udpsend.so


Configuration

To configure the plugin, the following commands are executed:

Status
colourRed
titleCaution Password

Translations Ignore


Code Block
languagebash
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
titleImportant

The configuration of the UDP plugin must be performed before the server is included in any replication between servers, otherwise replication will fail. The UDP plugin must be installed on all servers.

Configure Server RAM

In order that the server makes the best use of the RAM available, the configuration file /etc/my.cnf.d/jtel-enhanced-8.cnf must be adapted.

The setting innodb_buffer_pool_size should be adapted to about 3/4 of the available RAM, but a minimum of 3-4 GB should remain for the use of other processes

.

For Servers with 4 GB RAM, this should not exceed 2 GB.  Translations Ignore
Code Block
languagebash
# For 4 GB RAM
innodb_buffer_pool_size = 2048M

# 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

Restart MySQL

Finally, the MySQL server is restarted for the last time, to load all configuration settings.

systemctl restart mysqld.service

Translations Ignore
Code Block
languagebash
titleRestart the MySQL server


Sv translation
languagede

Status
colourRed
titleTHIS PAGE IS ONLY AVAILABLE IN ENGLISH