mysql -u root 不起作用,但 sudo mysql -u root 起作用,为什么?

use*_*280 10 mysql 17.10

我最近遵循了一些教程并使用 sudo apt-get install mysql-server-5.7 安装了 mysql

我可以通过运行以下命令使用密码连接到数据库:

sudo mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

我尝试通过运行连接:

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)

为什么?我怎样才能解决这个问题?

thi*_*a48 27

  1. 使用 sudo 访问: sudo mysql -u root -p
  2. 删除root用户: drop user 'root'@'localhost';
  3. 再次创建root用户: create user 'root'@'%' identified by 'your_password';
  4. 授予权限: grant all privileges on *.* to 'root'@'%' with grant option;
  5. 更新权限表: flush privileges;
  6. 退出 MYSQL 并尝试在没有 sudo 的情况下重新连接。

字体:无法从 ubuntu 16.04 中的普通用户帐户以 mysql 用户 root 身份登录