O MySQL 8 utiliza uma autenticação diferente ao de seus antecessores, que até o momento não é reconhecido pelo PHP 7, o que gera o erro "The server requested authentication method unknown to the client" ao tentar conectar-se ao Scriptcase.
Primeiramente, é necessário a criação de um novo usuário pois como o usuário atual do MySQL por padrão utiliza o tipo de autenticação caching2_sha2_password a conexão não será realizada utilizando ele.
Iremos criar o novo usuário utilizando a autenticação antiga para que seja possível a conexão.
Após essa configuração, será necessário alterar o tipo de autenticação padrão do MySQL.
Para realizar essa alteração é necessário seguir o tutorial de Erro ao conectar o banco de dados MySQL8.
Criando usuário utilizando algumas ferramentas de gerenciamento de banco de dados.
Caso você esteja utilizando alguma das ferramentas abaixo, iremos mostrar como criar um novo usuário para o seu MySQL através delas.
1. Abra o Navicat, e em seguida, conecte-se a ao servidor de banco dedados desejado.
2. Abra a conexão com qualquer base de dados deste servidor.
3. Abra uma janela de execução de comandos SQL, em “Query>NewQuery”.
4. Execute os 3 comandos SQL abaixo, em ordem.
Comando para criação do novo usuário usando autenticação antiga:
CREATE USER newuser@"%" IDENTIFIED WITH mysql_native_password BY 'password';
Comando para garantir permissões ao novo usuário:
GRANT ALL PRIVILEGES ON *.* TO "newuser"@"%";
FLUSH PRIVILEGES;
SQLYOG
1-Ao conectar-se a um servidor de banco de dados pelo SQLyog, digite oscomandos na janela de “Query” e execute-os.
Comando para criação do novo usuário usando autenticação antiga:
CREATE USER newuser@"%" IDENTIFIED WITH mysql_native_password BY 'password';
Comando para garantir permissões ao novo usuário:
GRANT ALL PRIVILEGES ON *.* TO "newuser"@"%";
FLUSH PRIVILEGES;
WORKBENCH
1-Abra uma conexão com um servidor de banco de dados ou cria uma nova conexão.
Comando para criação do novo usuário usando autenticação antiga:
CREATE USER newuser@"%" IDENTIFIED WITH mysql_native_password BY 'password';
Comando para garantir permissões ao novo usuário:
GRANT ALL PRIVILEGES ON *.* TO "newuser"@"%";
FLUSH PRIVILEGES;
TERMINAL/CMD
1.Vamos acessar o MySQL através do Terminal.
Linux: Basta abrir o terminal e utilizar o comando mysql passando os parâmetros para realizar a conexão.
-h = Ip do servidor (Caso seja na mesma máquina não é necessário)
-P = Porta do servidor (Caso seja na mesma máquina não é necessário se for a padrão)
-u = Usuário (Obrigatório)
-p = Senha (Obrigatório)
Windows: Caso não esteja utilizando o aplicativo para abrir diretamente o terminal do MySQL, será necessário navegar até a pasta do MySQL.
cd "c:\Program Files\MySQL\MySQL Server {Sua versão}\bin"
Então, acessar o MySQL
2. Em seguida crie o nome usuário utilizando a autenticação antiga do mysql mysql_native_password.
Comando para criação do novo usuário usando autenticação antiga:
CREATE USER newuser@"%" IDENTIFIED WITH mysql_native_password BY 'password';
Comando para garantir permissões ao novo usuário:
GRANT ALL PRIVILEGES ON *.* TO "newuser"@"%";
FLUSH PRIVILEGES;
3. No Scriptcase, na criação da conexão com o MySQL informe os dados do novo usuário.
Para novas Instalações do MySQL
Para novas instalações do MySQL, podemos escolher o tipo de autenticação que será utilizada.
Neste caso devemos optar pela opção Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)
Ao instalar o MySQL com esta autenticação a conexão poderá ser feita normalmente.