问题

问题

问题

我正在运行 Ubuntu 18.04,并且最近安装了 MySQL。但我从未真正使用过它。据我记得,我从未为任何用户设置过密码。(如果我设置了,我知道它会是什么。)

今天安装了phpMyAdmin,发现无法通过phpMyAdmin以root身份登录,尝试不用密码直接通过终端登录MySQL:

mysql -u root

如果我忘记了,我会设置密码:

mysql -u root -p

但这两件事都回来了

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

尝试的解决方案

尝试 1

我尝试过指南中,我停止了 MySQL 守护进程,然后使用该选项启动了 mysqld 守护进程--skip-grant-tables。然后运行此命令即可无需密码登录:

mysql -u root

我没有得到提示,而是mysql>遇到了以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket 
'/var/run/mysqld/mysqld.sock' (2)

第二次尝试

我尝试使用以下命令卸载 MySQL:

sudo apt-get --purge remove mysql-server mysql-common mysql-client

然后我尝试使用此命令重新安装 MySQL:

sudo apt-get install mysql-server mysql-common mysql-client

然后尝试设置如下密码:

mysqladmin -u root password my-new-password

然而我再次被错误信息难住了:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost''

我的程序员同事们,我完全不知道在继续寻求获得 MySQL 的强大功能时该往哪里走......

编辑

使用后sudo(按照 vidarlo 的回答),我能够访问我的数据库,并且我设法使用以下命令更改我的密码:

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

但 phpMyAdmin 仍然无法登录并返回错误

#1698 - Access denied for user 'root'@'localhost'

答案1

尝试

sudo mysql -u root

MariaDB 使用 Unix 套接字身份验证,这意味着您作为启动 mysql 客户端的用户进行身份验证。

您可以在以下位置阅读更多内容 MariaDB 的文档

相关内容