A máquina virtual executando o MySQL tem seu próprio endereço IP e é isso que você precisa usar para obter acesso ao MySQL a partir do host.
Existem duas coisas que podem atrapalhar.
Primeiramente, verifique as configurações do MySQL - você precisa ativar o acesso a partir do endereço IP externo não apenas no 127.0.0.1 (que é apenas interno para a VM). E você precisa ter certeza de que qualquer usuário do MySQL que você esteja usando tem o direito de acessar o servidor do endereço IP do host - os direitos de acesso no MySQL são limitados a endereços IP de origem específicos - embora você possa usar o curinga %
em qualquer lugar.
Em segundo lugar, certifique-se de que o firewall iptables do Ubuntu não esteja bloqueando o acesso de entrada à porta do MySQL (3306 por padrão).
Quanto aos seus outros problemas. É provável que o usuário do MySQL mysql
não tenha direitos de administrador completos e, portanto, não seja permitido criar novos bancos de dados. Mude o usuário root do MySQL (e note que estes não são usuários do Linux, eles são usuários do MySQL, algo completamente diferente) para que ele tenha uma senha e então tente criar um banco de dados após logar no MySQL como root.
Note que você geralmente não quer que o usuário MySQL root
seja utilizável de fora da máquina local - embora seja bom para servidores de teste.