由于在 Linux 安装 MySQL 或者 MariaDB 时没有设置密码

在输入 mysql -u root -p 时显示如下错误:

linuxmi@linuxmi:~/www.linuxmi.com$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

解决方法

su 输入密码,这样可以不输入密码,用超级权限登录MySQL 或者 MariaDB

linuxmi@linuxmi:~/www.linuxmi.com$ sudo su

登录MySQL

root@linuxmi:/home/linuxmi/www.linuxmi.com# mysql -u root -p

进入MySQL (MariaDB)数据库

MariaDB [(none)]> use mysql;

查看root的密码

MariaDB [(none)]> select host,user,plugin,authentication_string from user;

显示root用户的plugin为 unix_socket ,密码为空

更改新密码为v

MariaDB [mysql]> update user set plugin=”mysql_native_password”,authentication_string=password(‘v’) where user=”root”;

更新权限

MariaDB [(none)]> flush privileges;

之后就可以mysql -u root -p以新密码登录MySQL 或者 MariaDB 了。

发表回复