Instalação do MySQL
Execute as seguintes instruções disponível no bloco abaixo:
cd ~ && \
dnf module disable mysql -y && \
dnf install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm && \
percona-release setup ps-80 && \
dnf install -y percona-server-client
Continue com a execução:
dnf install -y percona-server-client percona-server-server percona-xtrabackup-80 qpress && \
systemctl start mysql.service
Será necessário capturar a senha gerada automaticamente na instalação do serviço de MySQL, através do seguinte comando:
cat /var/log/mysqld.log | grep "temporary password is generated"
Com a senha temporária gerada que foi exibida pelo comando anterior, continue executando o seguinte comando abaixo:
/usr/bin/mysql_secure_installation
Responsa o seguinte questionário:
- Enter password for user root: digitar a senha temporária informada
- New password: digite a nova senha
- Re-enter new password: repita a nova senha
- Change the password for root? ((Press y|Y for Yes, any other key for No): Y
- New password: digite a nova senha novamente
- Re-enter new password: repita a nova senha novamente
- Do you wish to continue with the password provided? (Press y|Y for Yes, any other key for No): Y
- Remove anonymous users? (Press y|Y for Yes, any other key for No): Y
- Disallow root login remotely? (Press y|Y for Yes, any other key for No): No
- Remove test database and access to it? (Press y|Y for Yes, any other key for No): Y
- Reload privilege tables now? (Press y|Y for Yes, any other key for No): Y
É necessário executar as seguintes instruções por determinação do Percona (será solicitado a senha do usuário root do MySQL nos três comandos):
mysql -u root -p -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'" && \
mysql -u root -p -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'" && \
mysql -u root -p -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
Continue executando as seguintes instruções disponível no bloco abaixo:
crudini --set /etc/my.cnf mysqld sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION && \
crudini --set /etc/my.cnf mysqld max_allowed_packet 64M && \
crudini --set /etc/my.cnf mysqld bind-address 0.0.0.0 && \
crudini --set /etc/my.cnf mysqld binlog_expire_logs_seconds 21600 && \
crudini --set /etc/my.cnf mysqld max_binlog_size 500M && \
crudini --set /etc/my.cnf mysqld skip-external-locking 1 && \
crudini --set /etc/my.cnf mysqld skip-host-cache 1 && \
crudini --set /etc/my.cnf mysqld skip-name-resolve 1 && \
crudini --set /etc/my.cnf mysqld performance_schema 1 && \
crudini --set /etc/my.cnf xtrabackup open-files-limit 2000000 && \
crudini --set /etc/systemd/system/mysql.service Service LimitNOFILE 650000 && \
crudini --set /etc/my.cnf mysqldump max-allowed-packet 128M && \
crudini --set /etc/my.cnf mysqldump quick 1 && \
crudini --set /etc/my.cnf mysqldump quote-names 1 && \
sed -i -e "s/.*skip-external-locking.*/skip-external-locking/" /etc/my.cnf && \
sed -i -e "s/.*skip-host-cache.*/skip-host-cache/" /etc/my.cnf && \
sed -i -e "s/.*skip-name-resolve.*/skip-name-resolve/" /etc/my.cnf && \
sed -i -e "s/.*performance_schema.*/performance_schema/" /etc/my.cnf && \
sed -i -e "s/.*quick.*/quick/" /etc/my.cnf && \
sed -i -e "s/.*quote-names.*/quote-names/" /etc/my.cnf
echo "fs.file-max=5000000" >> /etc/sysctl.d/99-sysctl.conf && \
echo "fs.nr_open=2000000" >> /etc/sysctl.d/99-sysctl.conf && \
echo "mysql hard nofile 2000000" >> /etc/security/limits.conf && \
echo "mysql soft nofile 2000000" >> /etc/security/limits.conf && \
sysctl -w fs.file-max=5000000 && \
sysctl -w fs.nr_open=2000000 && \
systemctl daemon-reload
Precisamos corrigir o acesso do usuário root do MySQL, com as seguintes instruções (deve ser executada individualmente):
mysql -h localhost -u root -p mysql -e "SET GLOBAL validate_password.policy = 0;"
mysql -h localhost -u root -p mysql -e "UPDATE user SET Host = '%' WHERE user.Host = 'localhost' AND user.User = 'root' LIMIT 1;"
Continue executando o seguinte comando abaixo para definir a senha do root (a mesma definida no MySQL Secure Installation):
Se houver uma exclamação ( !senha ), deverá colocar o contra barra antes ( \!senha ).
mysql -h localhost -u root -p mysql -e "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'SENHA';"
Observe que este comando poderá retornar um erro, e você deverá executar novamente para confirmar a operação, aonde retornará mensagem de sucesso.
Finaliza a instalação do MySQL reiniciando o serviço:
systemctl stop mysql.service && \
systemctl start mysql.service