• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

1.1K
Views
El nodo docker-composer js da error al ejecutar el compositor docker. mysql ER_NO_SUPPORTED_AUTH_MODE

Estoy tratando de implementar mi aplicación de nodo js con la ventana acoplable, pero cuando estoy ejecutando la ventana acoplable, la compongo y da un error al final. Vi alguna solución como

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

, pero dónde especificar esta consulta en la ventana acoplable.

docker-compose.yml

 version: '3' services: db: build: context: . dockerfile: ./docker/Dockerfile-mysql container_name: mydb environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes - MYSQL_DATABASE=dbautokab - MYSQL_USER=root - MYSQL_PASSWORD= networks: - helicopter-network healthcheck: test: "exit 0" helicopter-api: build: context: . dockerfile: ./docker/Dockerfile-api depends_on: - db networks: ['helicopter-network'] environment: - PORT=3000 - DATABASE_HOST=db - DATABASE_PASSWORD= - EGG_SERVER_ENV=local - NODE_ENV=development ports: - "3000:3000" networks: helicopter-network: driver: bridge

Dockerfile-api

 FROM node:10-slim USER node RUN mkdir -p /home/node/app WORKDIR /home/node/app COPY --chown=node package*.json ./ RUN npm install COPY --chown=node . . COPY wait-for-it.sh / ENV HOST=0.0.0.0 PORT=3000 EXPOSE ${PORT} CMD /wait-for-it.sh db:3306 -- npm start

Dockerfile-mysql

 FROM mysql COPY ./docker/init_db.sql /docker-entrypoint-initdb.d/

init_db.sql

 CREATE DATABASE IF NOT EXISTS dbautokab; GRANT ALL PRIVILEGES on dbautokab.* TO 'root'@'%' WITH GRANT OPTION;

error

error al conectarse a db: { Error: ER_NOT_SUPPORTED_AUTH_MODE: el cliente no admite el protocolo de autenticación solicitado por el servidor; considere actualizar el cliente MySQL

about 3 years ago · Santiago Trujillo
2 answers
Answer question

0

Creo que iniciar el servidor con un complemento de autenticación predeterminado personalizado debería funcionar. En este caso, puede anular la propiedad del command en docker-compose.yml .

 # ... services: db: # ... command: --default-authentication-plugin=mysql_native_password # ...
about 3 years ago · Santiago Trujillo Report

0

Cuando usas:

DESDE mysql

Docker saca la última versión, en este caso (8.0) que no soporta tipo de autenticación

Puede especificar la etiqueta de versión en su Dockerfile como:

DESDE mysql:5.7.26

Si desea permanecer en Mysql 8.0.

Debe ejecutar esta línea de comando dentro del contenedor:

docker exec -it container_name mysql -u root -p [root-password] mysql -e "update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';"

O conéctese a su contenedor y ejecute el comando:

docker exec -it container_name /bin/bash mysql -u root -p [root-password] mysql -e "update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';"

Espero eso ayude

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error