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


9

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

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

sudo mysql -u root -p

我尝试通过运行连接:

mysql -u root -p

但是我得到了错误:

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

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


2
亲爱的唐纳德,您还能否放弃唐纳德的理由,至少说明为什么这是一个愚蠢的问题?
user1379280 '18

这可能是相关的。看一些答案: askubuntu.com/questions/766334/…–
Terrance

您在安装过程中是否为mysql设置了root密码?
钢铁司机

@steeldriver:是的,我做到了
user1379280 '18

Answers:


23
  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登录


谢谢!这些步骤也对我sudo有用,现在不需要使用mysql!貌似更换的主机localhost%解决了这个问题对我来说。
维克拉姆·霍萨科特

但仍无法远程访问
Ciasto piekarz

没有为我工作,现在无论有没有sudo,我都无法进入!
大卫·鲍威尔,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.