Question

Deploy fullstack application ( frontend : vue.js, backend: node.js, database: mysql )

Posted August 26, 2019 1.5k views
Ubuntu MySQL Node.js Development Initial Server Setup

I have created 2 droplets one for my frontend and another for my backend.
I have linked both of them using the IP Address.

But When I am trying to make get request using Postman.
It is throwing this error:

Error -> SequelizeConnectionError: Client does not support authentication protocol requested by server; consider upgrading MySQL client

And when I am trying to access it from my vue.js application.
It is throwing this error:
net::ERRCONNECTIONREFUSED

Please help

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

1 answer

Hello,

Are you using the new DigitalOcean Managed MySQL service? If so you might have to create a new user with authentication type mysql_native_password or alter your doadmin user so that it does not use zcachingsha2passwordz but mysql_native_password. That way your node should be able to connect to the MySQL database.

You can take a look at this answer here on how to do that:

https://www.digitalocean.com/community/questions/how-to-change-caching_sha2_password-to-mysql_native_password-on-a-digitalocean-s-managed-mysql-database

Also, I would recommend testing if you could connect from your backend droplet to your MySQL server using telnet:

  • First SSH to your backend droplet and then run:
telnet (^)mysql_server_ip(^) (^)mysql_port(^)

If the telnet command connects you fine, then it is not an issue with your firewall, so I would recommend that you share your config files here so that I could advise you further.

Regards,
Bobby

Submit an Answer