MariaDB數據庫管理系統是 MySQL 的一個分支,主要由開源社區在維護,采用GPL授權許可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。
在新版的Mariadb安裝過程中沒有設置密碼的過程了,而用mysql_secure_installation命令設置Root密碼,然后用phpmyadmin登錄發現提示 Access denied for user ‘root’@‘localhost’
而在命令行你發現直接用mysql就可以登錄數據庫,完全不用密碼,然而你用其他的mysql管理工具使用密碼無論如何都會提示 Access denied for user ‘root’@‘localhost’ 。搜索了一下,原來不是我們安裝或者操作除了問題,是Mariadb
在5.2.0以后的版本默認不再使用密碼認證了,改用Authentication Plugin - Unix Socket插件認證。具體參考https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/
使用service mysql status查看mysql服務狀態你會發現有這樣一條警告。
[Warning] ‘user’ entry root@localhost’ has both a password and an authentication plugin specified. The password will be ignored.
也就是使用Unix Socke插件認證直接忽略密碼,自然使用密碼也就無效了。
##解決方法
雖然這是為了提高安全性,但有的地方我們必須使用密碼認證登錄,因此我們就要修改驗證為密碼的方式。直接在命令行輸入 mysql 登錄數據庫。使用以下命令修改
use mysql;
update mysql.user set plugin='mysql_native_password' where User='root';
flush privileges;