Exercício - Implantar um Banco de Dados do Azure para a instância do MySQL
Neste exercício, você cria seu Banco de Dados do Azure para MySQL - instância do Servidor Flexível e o carrega com dados de exemplo.
Obter o aplicativo e o script de exemplo
Clone o aplicativo de exemplo e o shell script do repositório GitHub usando o seguinte comando:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
A clonagem do projeto produz a seguinte estrutura de arquivos:
├── LICENSE
├── README.md
├── mvnw
├── mvnw.cmd
├── pom.xml
├── setup_mysql.sh
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── microsoft
│ │ └── azure
│ │ └── samples
│ │ ├── JAXRSConfiguration.java
│ │ ├── controllers
│ │ │ ├── CityService.java
│ │ │ └── CountryService.java
│ │ ├── entities
│ │ │ ├── City.java
│ │ │ └── Country.java
│ │ └── rest
│ │ └── WorldServiceEndpoint.java
│ ├── resources
│ │ └── META-INF
│ │ └── persistence.xml
│ └── webapp
│ └── WEB-INF
│ ├── beans.xml
│ ├── createMySQLDataSource.sh
│ └── web.xml
└── test
└── java
└── com
└── microsoft
└── azure
└── samples
└── SampleTest.java
Entrar no Azure
Se você não entrou no Azure, entre usando o seguinte comando:
az login
Configurar um local de instalação padrão
Os comandos executados pelo script usado neste módulo esperam uma opção --location. Especifique um valor padrão para essa opção usando o comando a seguir, substituindo <location> por uma região apropriada. Você deve usar a mesma região usada para implantar seu aplicativo Jakarta EE posteriormente neste módulo.
az configure --defaults location=<location>
Criar um Banco de Dados do Azure para MySQL - Instância do Servidor Flexível
Navegue até o diretório mslearn-jakarta-ee-azure e use o seguinte comando para criar seu Banco de Dados do Azure para MySQL - instância do Servidor Flexível:
Importante
Use o seguinte comando em um ambiente IPv4. Se o seu ambiente tiver um endereço IPv6, o comando falhará porque a configuração do firewall para ele ainda não suporta endereços IPv6.
Se ocorrer um erro durante a execução do script, o processo para no meio da execução. Pode ocorrer um erro enquanto o script está concedendo permissões, conforme indicado pela mensagem Granting the User.Read.All, GroupMember.Read.All, and Application.Read.All permissions to the user managed identityde saída. Para corrigir esse erro, entre na CLI do Azure novamente com um usuário que tenha Azure AD administrator privilégios e execute novamente o script.
./setup_mysql.sh flexible
A saída típica inclui o seguinte sucesso, além de alguns valores importantes que você usa no restante deste módulo:
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
Salve de lado os valores-chave que aparecem na saída porque você usa esses valores em etapas posteriores.
Configurar variáveis de ambiente
Use os comandos a seguir para armazenar os valores de chave. Certifique-se de substituir os <...> marcadores de posição pelos valores de saída do script na seção anterior.
export RESOURCE_GROUP_NAME=<resource-group>
export MYSQL_SERVER_INSTANCE=<MySQL-host-name>
export MYSQL_USER=<MySQL-admin-user-name>
export MYSQL_PASSWORD=<MySQL-password>
Observação
A Microsoft recomenda o uso do fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento, como para bancos de dados, caches, mensagens ou serviços de IA, requer um alto grau de confiança no aplicativo e acarreta riscos não presentes em outros fluxos. Use esse fluxo somente quando opções mais seguras, como identidades gerenciadas para conexões sem senha ou sem chave, não forem viáveis. Para operações de máquina local, prefira identidades de usuário para conexões sem senha ou sem chave.
Obter dados do banco de dados de exemplo
Neste módulo, você usa um banco de dados de exemplo chamado world do site oficial do MySQL. Para obter os dados, siga os seguintes passos:
Baixe o arquivo de banco de dados usando o seguinte comando:
curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zipDescompacte o arquivo de banco de dados usando o seguinte comando:
unzip world-db.zipListe o arquivo SQL usando os seguintes comandos:
cd world-db ls -l world.sqlA seguinte saída é típica:
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Iniciar sessão na base de dados
Use o seguinte comando para se conectar ao banco de dados usando apenas o nome de usuário e a senha, em vez de um token de acesso:
az mysql flexible-server connect \
--name $MYSQL_SERVER_INSTANCE \
--user azureuser \
--interactive
Quando o sistema solicitar, digite a senha do MySQL que você recuperou anteriormente.
Depois de se conectar, você pode usar a seguinte consulta no prompt SQL para exibir os nomes de usuário e plug-ins disponíveis:
SELECT user, host, plugin FROM mysql.user;
A seguinte saída é típica:
+----------------------------------+-----------+-----------------------+
| user | host | plugin |
+----------------------------------+-----------+-----------------------+
| azureuser | % | mysql_native_password |
| $CURRENT_AZ_LOGIN_USER_NAME#EXT#@| % | aad_auth |
| azure_superuser | 127.0.0.1 | mysql_native_password |
| azure_superuser | localhost | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
+----------------------------------+-----------+-----------------------+
Criar um banco de dados e tabelas para seu aplicativo
Use as seguintes etapas para criar um banco de dados para seu aplicativo a partir do script world.sql e, em seguida, verifique seus detalhes:
Use o seguinte comando para criar o banco de dados e as tabelas:
az mysql flexible-server execute \ --name $MYSQL_SERVER_INSTANCE \ --admin-password azureuser \ --admin-password '$MYSQL_PASSWORD' \ --file-path "./world-db/world.sql"Sugestão
Você também pode usar
mysqlpara criar um banco de dados e tabelas a partir de um arquivo de script, mas esse comando leva muito tempo para ser concluído.Confirme se os bancos de dados e tabelas estão no servidor usando o seguinte comando:
az mysql flexible-server connect \ --name $MYSQL_SERVER_INSTANCE \ --admin-user $MYSQL_USER \ --database-name world \ --interactiveQuando o sistema solicitar, digite a senha do MySQL que você recuperou anteriormente.
A seguinte saída é típica:
MySQL 8.0.39 mycli 1.27.2 Home: http://mycli.net Bug tracker: https://github.com/dbcli/mycli/issues Thanks to the contributor - Jakub BoukalNo prompt SQL, use a seguinte consulta para mostrar os bancos de dados no servidor:
show databases;A seguinte saída é típica:
+--------------------+ | Database | +--------------------+ | flexibleserverdb | | information_schema | | mysql | | newdatabase | | performance_schema | | sys | | world | +--------------------+ 7 rows in set Time: 0.152sUse a seguinte consulta para listar as
worldtabelas no banco de dados:show tables;A seguinte saída é típica:
+-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set Time: 0.145s
Consultar o banco de dados de exemplo
Use as seguintes etapas para exibir o world conteúdo do banco de dados:
Liste todas as informações do continente usando a seguinte consulta:
select distinct Continent from country ;A seguinte saída é típica:
+---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+Liste nomes de países e códigos de país por continente usando a seguinte consulta:
select code,name from country where Continent='Asia';A seguinte saída é típica:
+------+----------------------+ | code | Name | +------+----------------------+ | AFG | Afghanistan | | ARE | United Arab Emirates | | ARM | Armenia | | AZE | Azerbaijan | | BGD | Bangladesh | | BHR | Bahrain | | BRN | Brunei | | BTN | Bhutan | | CHN | China | | CYP | Cyprus | | GEO | Georgia | | HKG | Hong Kong SAR | | IDN | Indonesia | | IND | India | | IRN | Iran | | IRQ | Iraq | | ISR | Israel | | JOR | Jordan | | JPN | Japan | ..... | VNM | Vietnam | | YEM | Yemen | +------+----------------------+ 51 rows in set (0.02 sec)Liste todas as cidades com população superior a 1 milhão de habitantes usando a seguinte consulta:
select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC;A seguinte saída é típica:
+------+---------------------+-------------+-----------+------------+ | ID | Name | CountryCode | District | Population | +------+---------------------+-------------+-----------+------------+ | 1532 | Tokyo | JPN | Tokyo-to | 7980230 | | 1533 | Jokohama [Yokohama] | JPN | Kanagawa | 3339594 | | 1534 | Osaka | JPN | Osaka | 2595674 | | 1535 | Nagoya | JPN | Aichi | 2154376 | | 1536 | Sapporo | JPN | Hokkaido | 1790886 | | 1537 | Kioto | JPN | Kyoto | 1461974 | | 1538 | Kobe | JPN | Hyogo | 1425139 | | 1539 | Fukuoka | JPN | Fukuoka | 1308379 | | 1540 | Kawasaki | JPN | Kanagawa | 1217359 | | 1541 | Hiroshima | JPN | Hiroshima | 1119117 | | 1542 | Kitakyushu | JPN | Fukuoka | 1016264 | +------+---------------------+-------------+-----------+------------+ 11 rows in set (0.33 sec)
Resumo da unidade
Você concluiu a configuração e preparação da sua instância do Banco de Dados do Azure para MySQL - Servidor Flexível. A próxima unidade apresenta o processo de implantação do aplicativo Jakarta EE no JBoss EAP no Serviço de Aplicativo do Azure, juntamente com várias opções de configuração.