First, make sure MySQL is running in the container. It's possible you're connecting to a MySQL running outside of sail.
Run sail ps to see if the mysql container is running, or if it's exited. If it's exited, it likely means MySQL is running somewhere else already, and Sail's MySQL container can't bind to (listen for connections on) the same port.
Second, Assuming you haven't edited the docker-compose.yml file that Sail makes, then the mysql container is run in a service named mysql. The hostname to use from within the Laravel application (the .env file) should match the service name of the database container. That's likely mysql:
DB_HOST=mysql
Assuming your docker-compose.yml looks like this screenshot: https://d.pr/i/sIDfpw
Lastly Be sure if you're running artisan commands to run sail artisan foo instead of just php artisan foo. You'll want to run artisan commands from within the Laravel container, not from outside of it.