最近安装了mysql后发现要使用sudo mysql -u root -p才能登录数据库
导致我不能使用dbeaver登录本地数据库!
使用命令行报错

⇒  mysql -u root -p 
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

网上找了很久发现一个教程解决了,分享下给大家!
如果不记得密码可以编辑加上skip-grant-tables

#sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
port        = 3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir        = /tmp
lc-messages-dir    = /usr/share/mysql
skip-external-locking
 skip-grant-tables

*
保存后重启

sudo service msyql restart

先选择mysql数据库

USE mysql;

给root用户设置新密码

update mysql.user set authentication_string=password('新密码') where user='root' and Host ='localhost';

设置好后退出出删掉配置里面的skip-grant-tables
然后重启mysql

sudo service msyql restart

如果还是不行的话
再次登录数据库

sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

完美解决

Last modification:September 24, 2019
如果觉得我的文章对你有用,请随意赞赏