Instalação do MySQL
Execute as seguintes instruçõesinstruções disponíveldisponí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:execução:
percona-release enable tools release
dnf clean all && dnf repolist
percona-release enable pdps-8.0 release
dnf install -y percona-server-client percona-server-server percona-xtrabackup-80 qpress && \
systemctl start mysql.service
SeráSerá necessárionecessário capturar a senha gerada automaticamente na instalaçãoinstalação do serviçoserviço de MySQL, atravésatravés do seguinte comando:
cat /var/log/mysqld.log | grep "temporary password is generated"
Com a senha temporáriatemporária gerada que foi exibida pelo comando anterior, continue executando o seguinte comando abaixo:
/usr/bin/mysql_secure_installation
Responsa o seguinte questionário:questionário:
- Enter password for user root: digitar a senha
temporáriatemporá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árionecessário executar as seguintes instruçõesinstruções por determinaçãodeterminação do Percona (seráserá solicitado a senha do usuáriousuário root do MySQL nos trêstrê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çõesinstruções disponíveldisponí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áriousuário root do MySQL, com as seguintes instruçõesinstruçõ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çãoexclamação ( !senha ),deverá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ápoderá retornar um erro, evocêvocêdeverádeverá executar novamente para confirmar aoperação,operação, aonderetornaráretornará mensagem de sucesso.
Finaliza a instalaçãoinstalação do MySQL reiniciando o serviço:serviço:
systemctl stop mysql.service && \
systemctl start mysql.service