Instale o MYSQL 5.7 usando o script bash com o Centos

1

Estou usando o Centos 7 e tentando escrever um script que irá instalar o mysql 5.7 durante uma configuração vagante. Eu sei como alterar a senha de root manualmente, mas como você escreve isso em um script?

Já tenho isto:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y localinstall mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server
service mysqld start

Aqui está o que eu sei fazer manualmente: Obtenha a senha temp

grep 'temporary' /var/log/mysqld.log

Então eu digito e digito a passagem no prompt

mysql -u root -p
Enter Passwword:

Em seguida, altere o passo ou execute o mysql_secure_installation

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newhakase-labs123@';
flush privileges;
    
por user204588 21.10.2018 / 03:46

1 resposta

3

Eu testei esses comandos em uma instância do CentOS 7.5 no Google Cloud. Quando o script terminar de ser executado, você poderá efetuar login no servidor de banco de dados com a nova senha.

#!/bin/bash
# Description: Set up MySQL Community Release 5.7

# Get the repo RPM and install it.
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm 
yum -y install ./mysql57-community-release-el7-7.noarch.rpm 

# Install the server and start it
yum -y install mysql-community-server 
systemctl start mysqld 

# Get the temporary password
temp_password=$(grep password /var/log/mysqld.log | awk '{print $NF}')

# Set up a batch file with the SQL commands
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newhakase-labs123@'; flush privileges;" > reset_pass.sql

# Log in to the server with the temporary password, and pass the SQL file to it.
mysql -u root --password="$temp_password" --connect-expired-password < reset_pass.sql
    
por 21.10.2018 / 06:27