Skip to content

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client #2013

Closed
@OysteinAmundsen

Description

@OysteinAmundsen

Using:

  • docker hub mysql latest: v8.0.11
  • Latest Mysql client from npm: v2.15.0
  • Node 8.11.1
  • Connecting through TypeORM: v0.2.5

I'm getting this error, but I have done nothing to tweak the defaults anywhere.

Error:

Error during schema synchronization:
 { Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
     at Handshake.Sequence._packetToError (/usr/src/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:52:14)
     at Handshake.ErrorPacket (/usr/src/app/node_modules/mysql/lib/protocol/sequences/Handshake.js:130:18)
     at Protocol._parsePacket (/usr/src/app/node_modules/mysql/lib/protocol/Protocol.js:279:23)
     at Parser.write (/usr/src/app/node_modules/mysql/lib/protocol/Parser.js:76:12)
     at Protocol.write (/usr/src/app/node_modules/mysql/lib/protocol/Protocol.js:39:16)
     at Socket.<anonymous> (/usr/src/app/node_modules/mysql/lib/Connection.js:103:28)
     at emitOne (events.js:116:13)
     at Socket.emit (events.js:211:7)
     at addChunk (_stream_readable.js:263:12)
     at readableAddChunk (_stream_readable.js:250:11)
     --------------------
     at Protocol._enqueue (/usr/src/app/node_modules/mysql/lib/protocol/Protocol.js:145:48)
     at Protocol.handshake (/usr/src/app/node_modules/mysql/lib/protocol/Protocol.js:52:23)
     at PoolConnection.connect (/usr/src/app/node_modules/mysql/lib/Connection.js:130:18)
     at Pool.getConnection (/usr/src/app/node_modules/mysql/lib/Pool.js:48:16)
     at /usr/src/app/node_modules/typeorm/driver/mysql/MysqlDriver.js:694:18
     at new Promise (<anonymous>)
     at MysqlDriver.createPool (/usr/src/app/node_modules/typeorm/driver/mysql/MysqlDriver.js:691:16)
     at MysqlDriver.<anonymous> (/usr/src/app/node_modules/typeorm/driver/mysql/MysqlDriver.js:250:51)
     at step (/usr/src/app/node_modules/typeorm/driver/mysql/MysqlDriver.js:32:23)
     at Object.next (/usr/src/app/node_modules/typeorm/driver/mysql/MysqlDriver.js:13:53)
   code: 'ER_NOT_SUPPORTED_AUTH_MODE',
   errno: 1251,
   sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
   sqlState: '08004',
   fatal: true }
 npm ERR! code ELIFECYCLE
 npm ERR! errno 1
 npm ERR! [email protected] db:sync: `typeorm schema:sync && yarn migrations:run`
 npm ERR! Exit status 1
 npm ERR! 
 npm ERR! Failed at the [email protected] db:sync script.
 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

docker-stack.yml

db:
  image: 'mysql:latest'
  restart: on-failure
  environment:
    - MYSQL_DATABASE=myDB
    - MYSQL_PASSWORD=password
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_USER=myuser
  volumes:
    - '/usr/src/app/data:/var/lib/mysql'
client:
  image: 'dockerhubuser/client:latest'
  autodestroy: on-success
  autoredeploy: true
  restart: on-failure
  environment:
    - DATABASE_HOST=db
    - NODE_ENV=production
  links:
    - db
  volumes:
    - '/usr/src/app/log:/usr/src/app/log'
    - '/usr/src/app/media:/usr/src/app/media'
nginx:
  image: 'dockerhubuser/nginx'
  autodestroy: on-success
  autoredeploy: true
  restart: on-failure
  environment:
    - TZ=UTC
  links:
    - client
  ports:
    - '80:80'
    - '443:443'
  volumes:
    - '/usr/src/app/cert/ssl:/etc/nginx/ssl'

I tried switching to insecureAuth : true as suggested by https://stackoverflow.com/questions/44946270/er-not-supported-auth-mode-mysql-server, but this gave me the same error.

I looked at #1574 , but the solution here returns:
ERROR 1396 (HY000): Operation ALTER USER failed for 'system'@'localhost' .

Not sure if #1507 applies here, as I do not think I'm using auth_socket.

Perhaps #2001 is related, but this does not provide any solutions.

I tried to downgrade Typeorm, as this error first surfaced after a typeorm upgrade, but nothing changed. Same error. My only suspect now, is the docker image for mysql perhaps changed at the same time, giving me an upgraded mysql version.

What can I do?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions