[RESOLVIDO] Conexão com MySQL parou de funcionar!

Ontem ewstava funcionando! Hoje fiz um update no Scriptcase (apareceram 16 arquivos necessitando updates) e a conexão com MYSQL (8) parou de funcionar.

Disgnóstico:
PHP: 7.3.12
Hostname: JZ-PC
Ioncube: PHP Loader v10.3.8
OS: WINDOWS NT JZ-PC 10.0 BUILD 19043 (WINDOWS 10) AMD64
WEB Server: Apache/2.4.39 (Win64) mod_fcgid/2.3.9
ScriptCase Devel: 9.7.009
ScriptCase Build: 4
ScriptCase Prod: 9.7.009

Mensagem de erro:
Connection Error

Connection attempt failed: SQLSTATE[HY000] [1045] Access denied for user ‘Jairo’@‘JZ-PC’ (using password: YES)

Usando o Navicat e MySQL Workbench, a conexão funciona.

Alguma sugestão?

Mais algumas informações:

Criei um novo usuário com todas as permissões e consegui testar e a conexão com MySql e não deu erro: funcionou.

Consigo, agora, também abrir o Query Builder e o Database Builder, que estão funcionando, mas quando vou abrir qualquer aplicação (em todas), aparece esse erro:

Error
Error while accessing the database
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’ at line 1
select count(*) from purchases where tenant_ID =

Tentei também fazer uma atualização manual do Scriptcase… continua o problema.

Limpei o cache, tb;em não funcionou.

Incrementei a versão para gerar o código fonte novamente e… não funcionou!

Olá @jairoz,

Duas perguntas:

  • Você criou uma nova conexão dentro do teu SC?
  • Esse SELECT que postaste recebe uma variável global?

Oi Kleyber,

Não… Não criei uma nova conexão, mas troquei o usuário (novo) com todas as permissões do MySQL8 (conforme instruido no site) e a conexão não deu erro.

Tem sim uma variável global. O sistema é multiempresa e filtra pelo tenant_id que é variável global.

Uma coisa interessante: Se rodo a aplicação sozinha ela funciona, mas se rodo o projeto, nada funciona. Realmente parece que tem alguma coisa na variável global, apesar de que ontem tava tudo funcionando…

Obrigado!

Estás definindo essa variável global como variável de entrada ou de saída? Tente dar um echo nessa variável pra ver que conteúdo ela tem, se está recebendo a informação devida. Ela é alimentada como? De uma tabela? Se sim, verifique se no SELECT está trazendo a informação.

OI Kleyber,

A variável está definida no onValidate do app_login, sim ele puxa da tabela de usuários. Sempre funcionou bem assim.

De qualquer forma, acabou funcionando. Eu abri cada form/grid que estava com problemas, separadamente, sem abrir o app_login.

Desse jeito cada um funcionou. Depois rodei o projeto todo, com app_login e funcionou.

Muito maluco!!! Uma perda de tempo e um stress enorme. Mas no fim das contas tá funcionando (eu não sei o porque).

Muito Obrigado pelo esforço e ajuda!

1 Curtida

Quando se muda o usuário da conexão com o banco de dados no SC, é sempre bom mandar gear novamente todas as aplicações. Como fizeste somente com as que estavam com problemas, ótimo!
Fico feliz que tenha dado certo!