Question

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

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::ERR_CONNECTION_REFUSED

Please help

Subscribe
Share

How is your droplet structured?

Frontend in single droplet and database and backend in another droplet.


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

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.

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 zcaching_sha2_passwordz 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