I created a batch file to install MySQL Server on our offline machine. The service is up and running, but apparently it is unable to create the root password and is therefore unable to perform the following steps, such as creating the username and password.
This is what I’ve done so far:
@echo off
:: Definir variáveis de caminho baseadas na localização do script
set script_dir=%~dp0
set mysql_source_dir=%script_dir%mysql
:: Argumentos de entrada
set mysql_port=%1
set mysql_root_password=%2
set mysql_user=%3
set mysql_password=%4
:: Diretórios e nome do serviço baseados na porta
set mysql_base_dir=C:MySQLMySQL-%mysql_port%
set mysql_data_dir=C:MySQLdata%mysql_port%
set mysql_service_name=MySQL-%mysql_port%
:: Criar diretório base e de dados
mkdir %mysql_base_dir%
mkdir %mysql_data_dir%
:: Passo 1: Copiar os arquivos da pasta descompactada para o diretório base
echo Copiando os arquivos da pasta descompactada para o diretório base...
xcopy /E /I "%mysql_source_dir%*" "%mysql_base_dir%"
:: Passo 2: Configurar o MySQL (editar my.ini)
echo Configurando o arquivo my.ini...
(
echo [mysqld]
echo port=%mysql_port%
echo datadir=%mysql_data_dir%
echo basedir=%mysql_base_dir%
echo server-id=%mysql_port%
echo log-error=%mysql_base_dir%mysql.err
echo pid-file=%mysql_base_dir%mysql.pid
echo general-log=1
echo general-log-file=%mysql_base_dir%mysql.log
echo innodb_buffer_pool_size=512M
echo innodb_log_file_size=128M
echo mysqlx=off
) > %mysql_base_dir%my.ini
:: Passo 3: Inicializar o diretório de dados
echo Inicializando o diretório de dados...
cd %mysql_base_dir%bin
mysqld --initialize --datadir=%mysql_data_dir% --console
:: Passo 4: Instalar o MySQL como um serviço do Windows
echo Instalando o serviço do MySQL...
mysqld --install %mysql_service_name% --defaults-file=%mysql_base_dir%my.ini
:: Passo 5: Iniciar o serviço do MySQL
echo Iniciando o serviço do MySQL...
net start %mysql_service_name%
:: Passo 6: Configurar usuários e permissões
echo Configurando usuários e permissões...
mysql -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '%mysql_root_password%';"
mysql -u root -p%mysql_root_password% -e "CREATE USER '%mysql_user%'@'localhost' IDENTIFIED BY '%mysql_password%';"
mysql -u root -p%mysql_root_password% -e "GRANT ALL PRIVILEGES ON *.* TO '%mysql_user%'@'localhost'; FLUSH PRIVILEGES;"
:: Passo 7: Criar banco de dados
echo Criando banco de dados...
mysql -u %mysql_user% -p%mysql_password% -P %mysql_port% -e "CREATE DATABASE IF NOT EXISTS defense_mc;"
echo Instalação e configuração do MySQL concluídas com sucesso.
exit /b 0
New contributor
Matheus Adriano Martins is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
3