吐槽
以前装个MySQL什么的好简单的,现在搞得越来越麻烦了好像,默认用apt装的mariadb-server按说root初始密码应该是空的,但是高低进不去,提示:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
跑了n遍mysql_secure_installation
也没卵用,老中医遇到新问题了.扒了扒资料才知道,apt仓库里面的MariaDB默认启用了 UNIX auth_socket plugin
,这就导致一个问题,登录时数据库用户使用系统用户认证体系来认证。这种情况下,如果使用mysql -u root 的话,就会出现上面的错误信息.阿西吧,开怼吧!
解决方法
主要思路就是用sudo
运行mysql -u root
然后修改插件使用原生的mysql_native_password
认证插件.
$ sudo mysql -u root -p # 这里提示密码直接敲回车就行
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set plugin='mysql_native_password' where user='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exit;
$ sudo systemctl restart mariadb
重启服务后再连接妥妥的OJBK了.