O autônomo está configurado e o banco de dados também está configurado, mas o Nacos ainda falha ao iniciar

Problema encontrado:

Quando eu estava aprendendo Nacos hoje, baixei, instalei e descompactei o pacote Nacos. Baixei a versão mais recente do Nacos 2.2.1 no momento (2023.3.27), mas na inicialização, seja usando o comando oficial "startup.cmd - m standalone" ou clicar duas vezes diretamente em "startup.cmd" travará e a inicialização natural também falhará.

Resolva o problema do flashback da janela:

Então procurei informações e descobri que preciso adicionar no final de "startup.cmd":

pause
endlocal

Desta forma, a janela não voltará a piscar.

Exibir informações de exceção:

Depois que o problema de flashback da janela for resolvido, você poderá ver as informações completas da exceção. Minha mensagem de erro é muito longa. Há cerca de seis ou sete parágrafos de erro. Só consigo ler desde o início. O primeiro parágrafo de erro é (muito long, coloquei apenas a chave digitada em código):

 ERROR Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException.

org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat

Etapas da solução:

1. Configurar autônomo:

 Claro, eu mesmo não consigo entender, mas isso significa literalmente que há um problema com a inicialização do Tomcat, então só posso procurar por "Não é possível iniciar o Tomcat incorporado", então os seguintes resultados aparecem:

 O significado geral é: o modo de inicialização padrão do Nacos é a inicialização do cluster, mas pessoalmente temos apenas um host, portanto, devemos escolher o modo de inicialização autônomo, portanto, ele precisa ser reconfigurado. Para obter detalhes, consulte o artigo: http://t.csdn.cn/uDVW7 , o blogueiro também disse o segundo erro: "Falha ao criar banco de dados '/data/soft/nacos/data/derby-data'", Mas não o encontrei, então não vou entrar em detalhes aqui.Se precisar, pode ler o artigo no link acima.

antes de fixar:

Após modificação:

 

 Até agora, o modo de inicialização foi modificado, mas o relatório de erro de inicialização não foi reduzido, o que é muito irritante.

2. Configure o banco de dados (eu pessoalmente acho que você não pode modificá-lo, mas ainda o escrevo para sua referência):

Então eu vi a segunda resposta:

 Isso significa que há um arquivo de banco de dados no arquivo de configuração/conf, portanto, o motivo do erro pode ser que o ambiente de banco de dados correspondente seja necessário quando o Nacos iniciar, consulte o artigo: http://t.csdn.cn /NfXbj e http ://t.csdn .cn/b0rYp , o segundo artigo é mais detalhado, você pode consultar, mas meu pacote é diferente do que ele deu:

Ele deu:

meu: 

Meus passos são dados abaixo:

Abra o Navicat; crie um novo banco de dados (não sei se o nome pode ser criado casualmente, porque algumas respostas são para criar um novo banco de dados casualmente, mas o blogueiro acima mencionou "Nacos", então também usei "Nacos", depois tudo. Parece mais profissional); então execute mysql-schema.sql, embora o nome do arquivo em execução seja diferente do blogger acima, mas vi que a tabela construída é a mesma; modifique o arquivo de configuração conf/application :

 Circule esta parte e altere-a para o nome de usuário e senha de seu próprio banco de dados.

Acabou, mas o relatório de erros ainda não diminuiu.

3. Verifique se a porta está ocupada:

É muito angustiante, porque existem apenas as duas respostas acima em muitas informações que encontrei, pensei que meu problema poderia ser um problema de nicho, será que a porta 8848 do meu computador (a porta padrão do Nacos) está ocupada, então eu verifiquei meu uso de porta:

Abra cmd->digite o comando netstat -ano->encontre o número da porta, o número da porta está após os dois pontos após o endereço local ip (a parte circulada abaixo):

Se você deseja encontrar um número de porta específico, pode usar o comando netstat -ano | findstr "número da porta". Infelizmente, após uma inspeção cuidadosa, descobri que a porta não está ocupada.

4. Solução positiva: modifique o valor da chave no arquivo de configuração:

Porque eu aprendi assistindo o vídeo springcloud do Dark Horse 2021, a versão Nacos que eles usam ainda é 1.x, acho que pode ser alguns problemas com a nova versão, então pretendo desistir de usar a versão mais recente e usar 1 em a versão .x dos materiais de suporte, mas quando estava prestes a fechar a janela preta do cmd, vi a última mensagem de erro:

Caused by: java.lang.IllegalArgumentException: The specified key byte array is 0 bits which is not secure enough for any JWT HMAC-SHA algorithm.  The JWT JWA Specification (RFC 7518, Section 3.2) states that keys used with HMAC-SHA algorithms MUST have a size >= 256 bits (the key size must be greater than or equal to the hash output size).  See https://tools.ietf.org/html/rfc7518#section-3.2 for more information.
        at com.alibaba.nacos.plugin.auth.impl.jwt.NacosJwtParser.<init>(NacosJwtParser.java:56)
        at com.alibaba.nacos.plugin.auth.impl.token.impl.JwtTokenManager.processProperties(JwtTokenManager.java:71)
        ... 115 common frames omitted

Pesquisei esse erro no Google com a atitude de tentar e vi a seguinte resposta: 

 

 Isso significa: a chave usada para gerar o token JWT na nova versão (após 2.x) O arquivo de configuração Nacos é padronizado para um valor nulo, você mesmo precisa configurá-lo no arquivo conf/application e pode configurá-lo para o valor padrão oficial: SecretKey012345678901234567890123456789012345678901234567890123456789 , Você também pode configurá-lo sozinho. Ao personalizar a chave, é recomendável definir o item de configuração para uma string codificada em Base64 e o comprimento da chave original não deve ser inferior a 32 caracteres. Você pode consulte o artigo: http://t.csdn.cn/cdtH8 . Fui à documentação oficial e a documentação oficial diz o seguinte:

Modifique os arquivos confno diretório application.properties.

Defina o valor, consulte Autenticação-Chave personalizadanacos.core.auth.plugin.nacos.token.secret.key para obter detalhes .

Observe que os valores padrão no documento são valores padrão públicos SecretKey012345678901234567890123456789012345678901234567890123456789e podem ser usados ​​para testes temporários. Certifique-se de substituí-los por outros valores personalizados válidos VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=em uso real .

O funcionário recomenda personalizar a chave, mas você pode realmente usar o valor padrão acima. Usarei o valor padrão para mostrar o local modificado, que na verdade é o arquivo confno diretório application.properties:

 Após a modificação, clique duas vezes em "startup.cmd" e finalmente poderá iniciar normalmente:

 Mantenha pressionada a tecla Ctrl e clique na URL circulada acima, você também pode pular para a página de gerenciamento de configuração do Nacos normalmente:

 Eu fiz login e o primeiro salto bem-sucedido é ir para a página de login. O nome de usuário e a senha padrão são: "nacos", e você pode acessar a página acima após fazer login.

Resumir:

Na verdade, esse problema pode ser resolvido rapidamente olhando os documentos oficiais com atenção. No entanto, nunca tive o hábito de ler documentos oficiais, então gastei muito tempo dessa vez, o que pode ser considerado uma longa memória para meu.

Acho que a configuração do banco de dados pode ser alterada sem alterar. Vamos resumir. Para a configuração da inicialização autônoma (), o banco de dados também está configurado, mas o Nacos ainda falha ao iniciar. Verifique se você configurou os arquivos no diretório e defina confo application.propertiesvalor nacos.core.auth.plugin.nacos.token.secret.key. . Se este artigo ainda não resolver o seu problema, lembre-se de ler a documentação oficial: Nacos Quick Start .

Acho que você gosta

Origin blog.csdn.net/m0_56680022/article/details/129798194
Recomendado
Clasificación