Tente
sudo mysql -u root
O MariaDB usa a autenticação de soquete do Unix, o que significa que você está autenticado como o usuário que está iniciando o cliente mysql.
Você pode ler mais sobre isso em documentação do MariaDB .
Estou executando o Ubuntu 18.04 e instalei o MySQL recentemente. Eu nunca usei isso ainda. Tanto quanto me lembro, nunca defini qualquer senha para qualquer usuário. (Se eu fiz, eu sei o que seria.)
Hoje eu instalei o phpMyAdmin e descobri que não consegui logar no root pelo phpMyAdmin. Eu tentei logar no MySQL diretamente através do terminal sem uma senha:
mysql -u root
E com a senha que eu teria definido, se eu esquecesse:
mysql -u root -p
Mas ambos retornaram
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Eu tentei seguir o este guia, parei o processo demoníaco do MySQL, então eu iniciei o processo do daemon mysqld usando o --skip-grant-tables option. Então, ao executar este comando para efetuar login sem a senha:
mysql -u root
Em vez de chegar ao prompt mysql> , me deparei com o seguinte erro:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/var/run/mysqld/mysqld.sock' (2)
Eu tentei desinstalar o MySQL usando:
sudo apt-get --purge remove mysql-server mysql-common mysql-client
E então eu tentei reinstalar o MySQL usando este comando:
sudo apt-get install mysql-server mysql-common mysql-client
E, em seguida, tentou definir uma senha como esta:
mysqladmin -u root password my-new-password
No entanto, mais uma vez fiquei perplexo com uma mensagem de erro:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost''
Depois de usar sudo (de acordo com a resposta do vidarlo), consegui acessar meus bancos de dados e consegui alterar minha senha usando:
mysql> update user set authentication_string=password("Z4hVdwn9qZ")
where user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
Mas o phpMyAdmin ainda não entra e retorna o erro
#1698 - Access denied for user 'root'@'localhost'
Tente
sudo mysql -u root
O MariaDB usa a autenticação de soquete do Unix, o que significa que você está autenticado como o usuário que está iniciando o cliente mysql.
Você pode ler mais sobre isso em documentação do MariaDB .