Exercício – Implantar uma instância do Banco de Dados do Azure para MySQL
Neste exercício, você criará sua instância do Banco de Dados do Azure para MySQL – Servidor Flexível e a carregará com dados de exemplo.
Obter o aplicativo e o script de exemplo
Clone o aplicativo de exemplo e o script de shell 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ê ainda 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 --location opção. 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 mais adiante neste módulo.
az configure --defaults location=<location>
Criar uma instância do Banco de Dados do Azure para MySQL - Servidor Flexível
Navegue até o diretório mslearn-jakarta-ee-azure e use o seguinte comando para criar a instância do Banco de Dados do Azure para MySQL – Servidor Flexível:
Importante
Use o comando a seguir em um ambiente IPv4. Se o ambiente tiver um endereço IPv6, o comando falhará porque a configuração de firewall para ele ainda não dá suporte a endereços IPv6.
Se ocorrer um erro durante a execução do script, o processo será interrompido no meio da execução. Um erro pode ocorrer 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 novamente na CLI do Azure 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 êxito, 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 os valores de 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. Substitua os <...> espaços reservados pela saída de valores pelo 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 usar o 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 traz riscos que não estã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 computador 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ê usará um banco de dados de exemplo chamado world do site oficial do MySQL. Para obter os dados, use as seguintes etapas:
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 saída a seguir é típica:
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Entrar no banco 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, insira a senha MySQL que você recuperou anteriormente.
Depois de se conectar, você pode usar a seguinte consulta no prompt do SQL para exibir os nomes de usuário e plug-ins disponíveis:
SELECT user, host, plugin FROM mysql.user;
A saída a seguir é 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 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"Dica
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 em seu 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, insira a senha MySQL que você recuperou anteriormente.
A saída a seguir é 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 do SQL, use a seguinte consulta para mostrar os bancos de dados no servidor:
show databases;A saída a seguir é típica:
+--------------------+ | Database | +--------------------+ | flexibleserverdb | | information_schema | | mysql | | newdatabase | | performance_schema | | sys | | world | +--------------------+ 7 rows in set Time: 0.152sUse a consulta a seguir para listar as tabelas no
worldbanco de dados:show tables;A saída a seguir é 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 conteúdo do banco de world dados:
Liste todas as informações do continente usando a seguinte consulta:
select distinct Continent from country ;A saída a seguir é típica:
+---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+Liste nomes de país e códigos de país por continente usando a seguinte consulta:
select code,name from country where Continent='Asia';A saída a seguir é 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 que têm uma população maior que 1 milhão usando a seguinte consulta:
select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC;A saída a seguir é 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 instalação e a preparação para a 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.