>> Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use

Потому что что я тебе говорил? Не забудь удалить локальный MySQL. Скорее всего он у тебя работает и конечно же занял пор 3306.
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1174/mysqld

К слову. можно конкретный порт вот так проверить: sudo lsof -i :3306

И еще (но это не к этой ошибке), вот ты выполняешь: docker-compose restart docker-nextjs-test_mysql_1
Я говорил, что docker-compose оперирует именами служб, а не именами контейнеров. То есть в твоем случае надо было docker-compose restart mysql
А если по имени контейнера, то это уже через сам докер.
docker restart docker-nextjs-test_mysql_1