Vi outros tópicos sobre isso porém não identifiquei uma solução para a situação no Windows.
java.sql.SQLException: Access denied for user 'forum'@'localhost' (using password: YES)

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Vi outros tópicos sobre isso porém não identifiquei uma solução para a situação no Windows.
java.sql.SQLException: Access denied for user 'forum'@'localhost' (using password: YES)

Oie! Tudo bem?
Esse erro geralmente ocorre quando as credenciais de acesso ao banco de dados estão incorretas ou quando o usuário não possui permissões suficientes para acessar o banco de dados.
Aqui estão algumas sugestões para resolver esse problema:
Checar se as credenciais de acesso ao banco de dados estão corretas. Certificar se o nome de usuário e a senha estão digitados corretamente. Lembre-se de que as senhas diferenciam maiúsculas de minúsculas, então verifique se você digitou corretamente.
Verificar se o usuário possui as permissões corretas para acessar o banco de dados. Você pode usar o comando GRANT para conceder as permissões necessárias ao usuário. Por exemplo:
GRANT ALL PRIVILEGES ON database_name.* TO 'forum'@'localhost' IDENTIFIED BY 'password';
Lembrando que é importante substituir database_name pelo nome do seu banco de dados e password pela senha correta.
Se outra dúvida surgir, estamos aqui!
Abraços!
E aí pessoal, tudo bem?
Estou encontrando o mesmo erro, porém no Linux.
Quando eu acesso o https://localhost/health eu tenho esse retorno.
Não to conseguindo resolver :(
Estou com o mesmo problema: Ao executar:
docker logs -f app-forum-api
Tem este erro:
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.20.jar!/:8.0.20] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-java-8.0.20.jar!/:8.0.20] at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.20.jar!/:8.0.20] at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.20.jar!/:8.0.20] at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.20.jar!/:8.0.20] at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) ~[mysql-connector-java-8.0.20.jar!/:8.0.20] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.5.jar!/:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) ~[HikariCP-3.4.5.jar!/:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-3.4.5.jar!/:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477) [HikariCP-3.4.5.jar!/:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560) [HikariCP-3.4.5.jar!/:na] at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115) [HikariCP-3.4.5.jar!/:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) [HikariCP-3.4.5.jar!/:na] at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.lambda$h2Console$0(H2ConsoleAutoConfiguration.java:73) [spring-boot-autoconfigure-2.3.1.RELEASE.jar!/:2.3.1.RELEASE] at org.springframework.beans.factory.ObjectProvider.ifAvailable(ObjectProvider.java:93) ~[spring-beans-5.2.7.RELEASE.jar!/:5.2.7.RELEASE] at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.h2Console(H2ConsoleAutoConfiguration.java:72) [spring-boot-autoconfigure-2.3.1.RELEASE.jar!/:2.3.1.RELEASE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_212] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_212] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_212] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_212]
Maurício e José,
Vocês podem baixar o Driver do JDBC neste link, por favor? E testar novamente?
O log de erro de vocês dois constam sobre o JDBC do MySQL, então é possível que seja um problema do driver.
Se mesmo após baixar o mais recente para o seu sistema operacional ainda não funcionar, peço por gentileza que crie um novo tópico. Assim conseguimos ajudar com mais assertividade e focar nos problemas individualmente. =)
Abraços!
O sistema está rodando em um container em docker. Como faço para atualizar o JDBC dentro do container?
O projeto está usando o maven atualizei para o último drive do mysql-connector disponível mas não funcionou. Usando docker é para tudo subir tranquilo. Já tem um tempão que estou tentando resolver isto. Já li um monte de solução aqui do forum e da internet e nada funcionou.
Mesma coisa aqui José
Vou postar a solução que fiz.
**1**
Na pasta do projeto /eclipse-workspace/prometheus-grafana:
mkdir mysql_connection
**2**
Crie um arquivo meu.sql dentro do diretório com o conteúdo:
Postei o código mais abaixo.
**3**
Alterei o arquivo docker-compose.yaml
Postei o código mais abaixo.
**4**
docker-compose down
**5**
docker-compose up -d
**6**
http://localhost/topicos
docker-compose.yaml
version: '3'
networks:
database:
internal: true
cache:
internal: true
api:
internal: true
monit:
proxy:
services:
redis-forum-api:
image: redis
container_name: redis-forum-api
restart: unless-stopped
expose:
- 6379
networks:
- cache
mysql-forum-api:
image: mysql:5.7
container_name: mysql-forum-api
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_DATABASE: 'forum'
MYSQL_USER: 'forum'
MYSQL_PASSWORD: 'Bk55yc1u0eiqga6e'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_ROOT_HOST: '%'
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
timeout: 20s
retries: 10
volumes:
- ./mysql:/docker-entrypoint-initdb.d
- ./mysql_connection/meu.sql:/docker-entrypoint-initdb.d/1.sql
expose:
- 3306
networks:
- database
depends_on:
- redis-forum-api
app-forum-api:
build:
context: ./app/
dockerfile: Dockerfile
image: app-forum-api
container_name: app-forum-api
restart: unless-stopped
volumes:
- ./mysql_connection:/mysql_connection
networks:
- api
- database
- cache
depends_on:
mysql-forum-api:
condition: service_healthy
healthcheck:
test: "curl -sS http://app-forum-api:8080/actuator/health"
interval: 1s
timeout: 30s
retries: 60
start_period: 30s
proxy-forum-api:
image: nginx
container_name: proxy-forum-api
restart: unless-stopped
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/proxy.conf:/etc/nginx/conf.d/proxy.conf
ports:
- 80:80
networks:
- proxy
- api
depends_on:
- app-forum-api
prometheus-forum-api:
image: prom/prometheus:latest
container_name: prometheus-forum-api
restart: unless-stopped
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus/prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--web.enable-lifecycle'
ports:
- 9090:9090
networks:
- monit
- api
depends_on:
- proxy-forum-api
# client-forum-api:
# build:
# context: ./client/
# dockerfile: Dockerfile
# image: client-forum-api
# container_name: client-forum-api
# restart: unless-stopped
# networks:
# - proxy
# depends_on:
# - proxy-forum-api
meu.sql
CREATE TABLE usuario (
id int NOT NULL AUTO_INCREMENT,
nome varchar(50),
email varchar(50),
senha varchar(255),
PRIMARY KEY (id)
);
CREATE TABLE perfil (
id int NOT NULL AUTO_INCREMENT,
nome varchar(50),
PRIMARY KEY (id)
);
CREATE TABLE usuario_perfis (
id int NOT NULL AUTO_INCREMENT,
usuario_id int,
perfis_id int,
PRIMARY KEY (id)
);
CREATE TABLE curso(
id int NOT NULL AUTO_INCREMENT,
nome varchar(50),
categoria varchar(50),
PRIMARY KEY (id)
);
CREATE TABLE topico(
id int NOT NULL AUTO_INCREMENT,
titulo varchar(150),
mensagem varchar(255),
data_criacao varchar(50),
status varchar(50),
autor_id int,
curso_id int,
PRIMARY KEY (id)
);
CREATE TABLE resposta(
id int NOT NULL AUTO_INCREMENT,
mensagem varchar(255),
solucao int,
data_criacao varchar(50),
autor_id int,
topico_id int,
PRIMARY KEY (id)
);
INSERT INTO usuario(nome, email, senha)VALUES('Aluno', 'aluno@email.com', '$2a$10$sFKmbxbG4ryhwPNx/l3pgOJSt.fW1z6YcUnuE2X8APA/Z3NI/oSpq');
INSERT INTO usuario(nome, email, senha)VALUES('Moderador', 'moderador@email.com', '$2a$10$sFKmbxbG4ryhwPNx/l3pgOJSt.fW1z6YcUnuE2X8APA/Z3NI/oSpq');
INSERT INTO perfil(id,nome)VALUES(1,'ROLE_ALUNO');
INSERT INTO perfil(id,nome)VALUES(2,'ROLE_MODERADOR');
INSERT INTO usuario_perfis(usuario_id,perfis_id)VALUES(1,1);
INSERT INTO usuario_perfis(usuario_id,perfis_id)VALUES(2,2);
INSERT INTO curso(nome, categoria)VALUES('Spring Boot','Programação');
INSERT INTO curso(nome, categoria)VALUES('HTML 5','Front-end');
INSERT INTO topico(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida','Erro ao criar projeto','2019-05-05 18:00:00','NAO_RESPONDIDO',1,1);
INSERT INTO topico(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida 2','Projeto não compila','2019-05-05 19:00:00','NAO_RESPONDIDO',1,1);
INSERT INTO topico(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida 3','Tag HTML','2019-05-05 20:00:00','NAO_RESPONDIDO',1,2);
INSERT INTO resposta(solucao, mensagem, data_criacao, autor_id, topico_id) VALUES(1,'X','2019-05-05 18:00:00',2,1);
INSERT INTO resposta(solucao, mensagem, data_criacao, autor_id, topico_id) VALUES(2,'Javac HelloWorl.java','2019-05-05 19:00:00',2,2);
INSERT INTO resposta(solucao, mensagem, data_criacao, autor_id, topico_id) VALUES(3,'bootstrap','2019-05-05 20:00:00',2,3);
Bom! Não testei ainda, mas por curiosidade, tu fizeste essa solução da cabeça, ou viu em algum lugar?