ubuntu18.04中解决MySQL的access denied for user root @localhost的方法

方法一:

环境配置:ubuntu18.04,MySQL版本为5.7.25

解决方法:
1.打开/etc/mysql/debian.cnf文件,里面存储了系统管理员的密码

mysql -udebian-sys-maint -p

2. 用udebian-sys-maint账号登录MySQL

mysql -udebian-sys-maint -p

再输入对应debian.cnf里对应的密码,以管理员身份进去

3.进入控制台后.按以下步骤进行(记住使用函数PASSWORD)

use mysql;
update user set authentication_string=PASSWORD('新密码') where user='root';
quit;
service mysql restart

4.重新登录

mysql -u root -p

方法二:

参考https://blog.csdn.net/wangliyao518/article/details/83011522

1、打开MySQL目录下的配置文件(我的目录是/etc/mysql/mysql.conf.d/mysqld.cnf, 可能有的系统是my.ini),在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

2、重启MySQL服务

service mysql restart

3、在命令行中输入“mysql -u root -p”(不输入密码),回车即可进入数据库。

4、执行,“use mysql;”使用mysql数据库。

5、执行,“update user set authentication_string=PASSWORD("rootadmin") where user='root';”(修改root的密码, 有的mysql表列名可能是password, 需要是命令:"update user set password=PASSWORD("rootadmin") where user='root';")

(记住使用函数PASSWORD)

6、打开MySQL目录下的/etc/mysql/mysql.conf.d/mysqld.cnf文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

7、重启MySQL服务。( service mysql restart)

8、在命令行中输入“mysql -u root -p”,问题搞定!

结果如下:


 

猜你喜欢

转载自blog.csdn.net/qq_39479426/article/details/88771315